#=================================================== # Set the current working directory #===================================================

import os
os.chdir("/Users/eklavya/projects/education/formalEducation/DataScience/DataScienceAssignments/HealthCare/Capstone/")

#=================================================== # Libraries to be used #===================================================

library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(ggplot2)
library(tidyr)
library(data.table)
## 
## Attaching package: 'data.table'
## The following objects are masked from 'package:dplyr':
## 
##     between, first, last
library(corrplot)
## corrplot 0.84 loaded
library(gridExtra)
## 
## Attaching package: 'gridExtra'
## The following object is masked from 'package:dplyr':
## 
##     combine
library(ggthemes)
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

sns.set_style('whitegrid')

#=================================================== # Utility functions to be used #===================================================

# Function to replace "Not Available" to NA's
replace_NA <- function(x, y, z) {
  x[which(x == y)] <- z
  return(x)
}

func_numeric <- function(x) {
  x <- as.numeric(x)
  return(x)
}

func_rename <- function(x) {
  x %>% rename_at(vars(-Provider.ID), function(y) paste0(y, "_score"))
}

# Function to scale the values.
negative_zscore <- function(i) {
  return((mean(i, na.rm = T) - i) / (sd(i, na.rm = T)))
}

positive_zscore <- function(i) {
  return((i - mean(i, na.rm = T)) / (sd(i, na.rm = T)))
}

#### Function to treat the outliers

treat_outliers <- function(df) {
  for (colmn in 2:(ncol(df))) {
    qtl = quantile(df[, colmn], probs = seq(0, 1, 0.00001), na.rm = T)
    df[, colmn][which(df[, colmn] <= qtl[0.00125 * length(qtl)])] <- qtl[0.00125 * length(qtl)]
    df[, colmn][which(df[, colmn] >= qtl[0.99875 * length(qtl)])] <- qtl[0.99875 * length(qtl)]
  }
  return(df)
}

#=================================================== # 1. Readmission - Load “Readmissions and Deaths - Hospital.csv” file into read_raw #===================================================

read_rawdata <- read.csv("Readmissions and Deaths - Hospital.csv", stringsAsFactors = FALSE, na.strings = c("Not Available", "Not Applicable"))
dim(read_rawdata)  ## 67452 rows and 18 columns
## [1] 67452    18
#[1] 67452    18

str(read_rawdata)
## 'data.frame':    67452 obs. of  18 variables:
##  $ Provider.ID         : int  10001 10001 10001 10001 10001 10001 10001 10001 10001 10001 ...
##  $ Hospital.Name       : chr  "SOUTHEAST ALABAMA MEDICAL CENTER" "SOUTHEAST ALABAMA MEDICAL CENTER" "SOUTHEAST ALABAMA MEDICAL CENTER" "SOUTHEAST ALABAMA MEDICAL CENTER" ...
##  $ Address             : chr  "1108 ROSS CLARK CIRCLE" "1108 ROSS CLARK CIRCLE" "1108 ROSS CLARK CIRCLE" "1108 ROSS CLARK CIRCLE" ...
##  $ City                : chr  "DOTHAN" "DOTHAN" "DOTHAN" "DOTHAN" ...
##  $ State               : chr  "AL" "AL" "AL" "AL" ...
##  $ ZIP.Code            : int  36301 36301 36301 36301 36301 36301 36301 36301 36301 36301 ...
##  $ County.Name         : chr  "HOUSTON" "HOUSTON" "HOUSTON" "HOUSTON" ...
##  $ Phone.Number        : num  3.35e+09 3.35e+09 3.35e+09 3.35e+09 3.35e+09 ...
##  $ Measure.Name        : chr  "Acute Myocardial Infarction (AMI) 30-Day Mortality Rate" "Death rate for CABG" "Death rate for chronic obstructive pulmonary disease (COPD) patients" "Heart failure (HF) 30-Day Mortality Rate" ...
##  $ Measure.ID          : chr  "MORT_30_AMI" "MORT_30_CABG" "MORT_30_COPD" "MORT_30_HF" ...
##  $ Compared.to.National: chr  "No Different than the National Rate" "No Different than the National Rate" "No Different than the National Rate" "No Different than the National Rate" ...
##  $ Denominator         : int  733 278 586 797 599 512 781 273 707 981 ...
##  $ Score               : num  12.5 4.2 9.3 12.4 15.5 15.4 16.5 15.1 21.1 21.4 ...
##  $ Lower.Estimate      : num  10.6 2.6 7.3 10.4 13 12.8 14.6 12.3 18.7 19.2 ...
##  $ Higher.Estimate     : num  14.9 6.8 11.8 14.6 18.5 18.6 18.8 18.5 23.8 23.7 ...
##  $ Footnote            : chr  "" "" "" "" ...
##  $ Measure.Start.Date  : chr  "07/01/2012" "07/01/2012" "07/01/2012" "07/01/2012" ...
##  $ Measure.End.Date    : chr  "06/30/2015" "06/30/2015" "06/30/2015" "06/30/2015" ...
unique(read_rawdata$Score)
##   [1] 12.5  4.2  9.3 12.4 15.5 15.4 16.5 15.1 21.1 21.4  5.1 18.7 12.7 16.0
##  [15]   NA  7.6 20.8 16.7 18.0 21.9  5.7 14.9 16.4 13.4  4.1  7.1 15.6 18.2
##  [29] 17.9 16.1 15.2 19.8 20.6  5.0 12.0 14.4 18.8 16.6 19.9 17.3  8.2 15.7
##  [43] 19.2 23.1 13.9  3.7  7.4 13.8 12.6 17.7 15.0 19.6 15.3 11.3 16.8  9.2
##  [57] 26.8 15.8 23.4 19.4 12.8 14.7  3.6  8.1 14.0 21.5 17.1  8.7 12.9 19.1
##  [71] 23.0 22.4 15.9 18.3 13.5  6.4 12.2 14.3 21.3 14.8  7.7  4.5  9.1 18.1
##  [85] 19.5 23.3  4.7 18.6  4.8  9.5 10.6 17.2 19.0  4.9 16.9 13.0  4.4  8.0
##  [99] 12.1 23.2  5.9 10.5 21.6 16.3  2.3 18.9 23.7  7.0  9.4 20.1 21.7  8.3
## [113] 20.2 16.2 22.8  4.6  7.2 11.5 13.2  3.9 14.5 20.3 24.0 13.1  1.8 11.7
## [127] 13.7 12.3  7.5 19.7 21.0  6.7  6.6 11.4 10.7 17.4 22.2 11.2  3.1  7.8
## [141] 14.2 22.3 17.5 14.6 20.0 11.6 13.6 22.5  4.3 10.4 20.4 11.9 17.0 10.9
## [155] 13.3 17.8  5.3 14.1 18.5 22.6  8.6 20.7 20.9  3.0  6.8  6.2 22.9  7.9
## [169]  5.5 21.8  6.9 20.5  9.0 22.0  3.5  8.5  5.2  9.9 22.1 18.4 10.3 19.3
## [183] 10.0 23.6 17.6 21.2 10.1  2.7 22.7  5.4  9.7  9.6  4.0  2.8 11.8 23.8
## [197]  8.9  7.3 10.8  9.8  2.9  8.4 24.6  3.8  5.6 11.0  6.0 24.8  3.2  2.1
## [211] 24.4 11.1 23.9  2.4  3.4 23.5 24.7 26.2  8.8 24.3 25.2 26.1 24.2 24.5
## [225] 24.9  3.3  2.6  6.5  1.9  2.2 25.3  6.1 10.2 25.0 24.1 26.0  5.8  6.3
## [239]  2.5 26.3 25.9  2.0  1.4 25.5 26.4 27.0 25.4 25.7 26.7 25.1 25.8 31.3
## [253]  1.7  1.5 26.9 25.6 27.2 27.4  1.6
# We will filter only those columns which are needed as per the mentor.
read_meas_list = c("READM_30_AMI", "READM_30_CABG", "READM_30_COPD", "READM_30_HF", "READM_30_HIP_KNEE", "READM_30_HOSP_WIDE", "READM_30_PN", "READM_30_STK")
read_hosp <- read_rawdata[, c(1:8)]
read_hosp <- read_hosp[!duplicated(read_hosp),]
read_meas <- read_rawdata[, c(1, 10, 13)]
read_meas$Score <- func_numeric(read_meas$Score)
read_meas <- subset(read_meas, Measure.ID %in% read_meas_list)
str(read_meas)
## 'data.frame':    38544 obs. of  3 variables:
##  $ Provider.ID: int  10001 10001 10001 10001 10001 10001 10001 10001 10005 10005 ...
##  $ Measure.ID : chr  "READM_30_AMI" "READM_30_CABG" "READM_30_COPD" "READM_30_HF" ...
##  $ Score      : num  16.5 15.1 21.1 21.4 5.1 15.4 18.7 12.7 16.7 NA ...
read_meas_score <- spread(read_meas, Measure.ID, Score)
str(read_meas_score)
## 'data.frame':    4818 obs. of  9 variables:
##  $ Provider.ID       : int  10001 10005 10006 10007 10008 10011 10012 10016 10018 10019 ...
##  $ READM_30_AMI      : num  16.5 16.7 16.1 NA NA 17.7 16.1 17.7 NA NA ...
##  $ READM_30_CABG     : num  15.1 NA 15.2 NA NA 15 NA 15.8 NA NA ...
##  $ READM_30_COPD     : num  21.1 18 19.8 19.9 19.2 19.6 19.2 17.9 NA 23 ...
##  $ READM_30_HF       : num  21.4 21.9 20.6 21.1 23.1 19.8 23.4 21.5 NA 22.4 ...
##  $ READM_30_HIP_KNEE : num  5.1 5.7 5 NA NA 5.1 NA 5 NA 4.1 ...
##  $ READM_30_HOSP_WIDE: num  15.4 14.9 15.4 16.6 15.7 15.3 15.3 14.7 NA 15.9 ...
##  $ READM_30_PN       : num  18.7 16.4 17.9 17.3 16 16.7 19.4 17.1 NA 18.3 ...
##  $ READM_30_STK      : num  12.7 13.4 12 12.7 NA 11.3 12.8 12.4 NA 13.5 ...
read_meas_score <- func_rename(read_meas_score)
str(read_meas_score)
## 'data.frame':    4818 obs. of  9 variables:
##  $ Provider.ID             : int  10001 10005 10006 10007 10008 10011 10012 10016 10018 10019 ...
##  $ READM_30_AMI_score      : num  16.5 16.7 16.1 NA NA 17.7 16.1 17.7 NA NA ...
##  $ READM_30_CABG_score     : num  15.1 NA 15.2 NA NA 15 NA 15.8 NA NA ...
##  $ READM_30_COPD_score     : num  21.1 18 19.8 19.9 19.2 19.6 19.2 17.9 NA 23 ...
##  $ READM_30_HF_score       : num  21.4 21.9 20.6 21.1 23.1 19.8 23.4 21.5 NA 22.4 ...
##  $ READM_30_HIP_KNEE_score : num  5.1 5.7 5 NA NA 5.1 NA 5 NA 4.1 ...
##  $ READM_30_HOSP_WIDE_score: num  15.4 14.9 15.4 16.6 15.7 15.3 15.3 14.7 NA 15.9 ...
##  $ READM_30_PN_score       : num  18.7 16.4 17.9 17.3 16 16.7 19.4 17.1 NA 18.3 ...
##  $ READM_30_STK_score      : num  12.7 13.4 12 12.7 NA 11.3 12.8 12.4 NA 13.5 ...
readmission <- read_meas_score
# # We will use negative zscore scaling as high readmissions implies the Hospital is not doing well in terms of patient treatment quality.
readmission[, 2:ncol(readmission)] <- sapply(readmission[, -1], negative_zscore)
str(readmission)
## 'data.frame':    4818 obs. of  9 variables:
##  $ Provider.ID             : int  10001 10005 10006 10007 10008 10011 10012 10016 10018 10019 ...
##  $ READM_30_AMI_score      : num  0.409 0.2 0.826 NA NA ...
##  $ READM_30_CABG_score     : num  -0.615 NA -0.704 NA NA ...
##  $ READM_30_COPD_score     : num  -0.8668 1.5743 0.1569 0.0782 0.6294 ...
##  $ READM_30_HF_score       : num  0.3704 0.0364 0.9047 0.5707 -0.765 ...
##  $ READM_30_HIP_KNEE_score : num  -0.884 -1.968 -0.703 NA NA ...
##  $ READM_30_HOSP_WIDE_score: num  0.215 0.821 0.215 -1.237 -0.148 ...
##  $ READM_30_PN_score       : num  -1.105 0.496 -0.549 -0.131 0.774 ...
##  $ READM_30_STK_score      : num  -0.125 -0.777 0.528 -0.125 NA ...
# Outlier treatment: According to the CMS documentation, they've performed the outlier treatment for
# measures at the 0.125th and the 99.875th percentiles
readmission <- treat_outliers(readmission)
read_master <- merge(read_hosp, readmission, by = "Provider.ID")
dim(read_master)
## [1] 4818   16
# [1] 4818  16
str(read_master)
## 'data.frame':    4818 obs. of  16 variables:
##  $ Provider.ID             : int  10001 10005 10006 10007 10008 10011 10012 10016 10018 10019 ...
##  $ Hospital.Name           : chr  "SOUTHEAST ALABAMA MEDICAL CENTER" "MARSHALL MEDICAL CENTER SOUTH" "ELIZA COFFEE MEMORIAL HOSPITAL" "MIZELL MEMORIAL HOSPITAL" ...
##  $ Address                 : chr  "1108 ROSS CLARK CIRCLE" "2505 U S HIGHWAY 431 NORTH" "205 MARENGO STREET" "702 N MAIN ST" ...
##  $ City                    : chr  "DOTHAN" "BOAZ" "FLORENCE" "OPP" ...
##  $ State                   : chr  "AL" "AL" "AL" "AL" ...
##  $ ZIP.Code                : int  36301 35957 35631 36467 36049 35235 35968 35007 35233 35660 ...
##  $ County.Name             : chr  "HOUSTON" "MARSHALL" "LAUDERDALE" "COVINGTON" ...
##  $ Phone.Number            : num  3.35e+09 2.57e+09 2.57e+09 3.34e+09 3.34e+09 ...
##  $ READM_30_AMI_score      : num  0.409 0.2 0.826 NA NA ...
##  $ READM_30_CABG_score     : num  -0.615 NA -0.704 NA NA ...
##  $ READM_30_COPD_score     : num  -0.8668 1.5743 0.1569 0.0782 0.6294 ...
##  $ READM_30_HF_score       : num  0.3704 0.0364 0.9047 0.5707 -0.765 ...
##  $ READM_30_HIP_KNEE_score : num  -0.884 -1.968 -0.703 NA NA ...
##  $ READM_30_HOSP_WIDE_score: num  0.215 0.821 0.215 -1.237 -0.148 ...
##  $ READM_30_PN_score       : num  -1.105 0.496 -0.549 -0.131 0.774 ...
##  $ READM_30_STK_score      : num  -0.125 -0.777 0.528 -0.125 NA ...
write.csv(readmission, "cleaned_readmission_data.csv")

#=================================================== ## 2. Mortality - Load 2 Files “Readmissions and Deaths - Hospital.csv + Complications - Hospital.csv” into morality dataframe #===================================================

mort_rawdata1 <- read_rawdata
mort_rawdata2 <- read.csv("Complications - Hospital.csv", stringsAsFactors = FALSE, na.strings = c("Not Available", "Not Applicable"))
identical(names(mort_rawdata1), names(mort_rawdata2))
## [1] TRUE
# [1] TRUE
mort_rawdata <- rbind(mort_rawdata1, mort_rawdata2)
mort_meas_list = c("MORT_30_AMI", "MORT_30_CABG", "MORT_30_COPD", "MORT_30_HF", "MORT_30_PN", "MORT_30_STK", "PSI_4_SURG_COMP")
mort_hosp <- mort_rawdata[, c(1:8)]
mort_hosp = mort_hosp[!duplicated(mort_hosp),]
mort_meas <- mort_rawdata[, c(1, 10, 13)]
mort_meas <- subset(mort_meas, Measure.ID %in% mort_meas_list)
mort_meas$Score <- func_numeric(mort_meas$Score)
mort_meas_score <- spread(mort_meas, Measure.ID, Score)
mort_meas_score <- func_rename(mort_meas_score)
str(mort_meas_score)
## 'data.frame':    4818 obs. of  8 variables:
##  $ Provider.ID          : int  10001 10005 10006 10007 10008 10011 10012 10016 10018 10019 ...
##  $ MORT_30_AMI_score    : num  12.5 16 16.7 NA NA 13.9 16.8 14.7 NA 15.6 ...
##  $ MORT_30_CABG_score   : num  4.2 NA 4.1 NA NA 3.7 NA 3.6 NA NA ...
##  $ MORT_30_COPD_score   : num  9.3 7.6 7.1 9.3 8.2 7.4 9.2 8.1 NA 8.7 ...
##  $ MORT_30_HF_score     : num  12.4 15.5 15.6 14.4 12.7 13.8 12.5 14 NA 12.9 ...
##  $ MORT_30_PN_score     : num  15.5 20.8 18.2 18.8 15.7 17.9 26.8 16.1 NA 19.1 ...
##  $ MORT_30_STK_score    : num  15.4 15.5 17.9 16.6 NA 12.6 15.8 15.8 NA 15.4 ...
##  $ PSI_4_SURG_COMP_score: num  168 179 198 NA NA ...
mortality <- mort_meas_score
# Mortality indicates the death rate, higher the number worser is the hospital or provider.
# Since it is related to death rate we will use negative z-score formula.
mortality[, 2:ncol(mortality)] <- sapply(mortality[, -1], negative_zscore)
str(mortality)
## 'data.frame':    4818 obs. of  8 variables:
##  $ Provider.ID          : int  10001 10005 10006 10007 10008 10011 10012 10016 10018 10019 ...
##  $ MORT_30_AMI_score    : num  1.25 -1.55 -2.1 NA NA ...
##  $ MORT_30_CABG_score   : num  -0.996 NA -0.881 NA NA ...
##  $ MORT_30_COPD_score   : num  -1.094 0.434 0.883 -1.094 -0.105 ...
##  $ MORT_30_HF_score     : num  -0.166 -2.286 -2.355 -1.534 -0.371 ...
##  $ MORT_30_PN_score     : num  0.428 -2.103 -0.862 -1.148 0.332 ...
##  $ MORT_30_STK_score    : num  -0.282 -0.342 -1.784 -1.003 NA ...
##  $ PSI_4_SURG_COMP_score: num  -1.71 -2.3 -3.35 NA NA ...
# Outlier treatment: According to the CMS documentation, they've performed the outlier treatment for
# measures at the 0.125th and the 99.875th percentiles
mortality <- treat_outliers(mortality)
mort_master <- merge(mort_hosp, mortality, by = "Provider.ID")
dim(mort_master)
## [1] 4818   15
#[1] 4818   15
str(mort_master)
## 'data.frame':    4818 obs. of  15 variables:
##  $ Provider.ID          : int  10001 10005 10006 10007 10008 10011 10012 10016 10018 10019 ...
##  $ Hospital.Name        : chr  "SOUTHEAST ALABAMA MEDICAL CENTER" "MARSHALL MEDICAL CENTER SOUTH" "ELIZA COFFEE MEMORIAL HOSPITAL" "MIZELL MEMORIAL HOSPITAL" ...
##  $ Address              : chr  "1108 ROSS CLARK CIRCLE" "2505 U S HIGHWAY 431 NORTH" "205 MARENGO STREET" "702 N MAIN ST" ...
##  $ City                 : chr  "DOTHAN" "BOAZ" "FLORENCE" "OPP" ...
##  $ State                : chr  "AL" "AL" "AL" "AL" ...
##  $ ZIP.Code             : int  36301 35957 35631 36467 36049 35235 35968 35007 35233 35660 ...
##  $ County.Name          : chr  "HOUSTON" "MARSHALL" "LAUDERDALE" "COVINGTON" ...
##  $ Phone.Number         : num  3.35e+09 2.57e+09 2.57e+09 3.34e+09 3.34e+09 ...
##  $ MORT_30_AMI_score    : num  1.25 -1.55 -2.1 NA NA ...
##  $ MORT_30_CABG_score   : num  -0.996 NA -0.881 NA NA ...
##  $ MORT_30_COPD_score   : num  -1.094 0.434 0.883 -1.094 -0.105 ...
##  $ MORT_30_HF_score     : num  -0.166 -2.286 -2.355 -1.534 -0.371 ...
##  $ MORT_30_PN_score     : num  0.428 -2.103 -0.862 -1.148 0.332 ...
##  $ MORT_30_STK_score    : num  -0.282 -0.342 -1.784 -1.003 NA ...
##  $ PSI_4_SURG_COMP_score: num  -1.71 -2.3 -3.33 NA NA ...
write.csv(mortality, "cleaned_mortality_data.csv")

3. Safety - Load 2 files “Healthcare Associated Infections - Hospital.csv + Complications - Hospital.csv” into safety dataframe

safe_rawdata1 <- mort_rawdata
safe_rawdata2 <- read.csv("Healthcare Associated Infections - Hospital.csv", stringsAsFactors = FALSE, na.strings = c("Not Available", "Not Applicable"))
safe_rawdata1 = safe_rawdata1[, c(1:8, 10, 13)]
safe_rawdata2 = safe_rawdata2[, c(1:8, 10, 12)]
identical(names(safe_rawdata1), names(safe_rawdata2))
## [1] TRUE
# [1] TRUE
safe_rawdata <- rbind(safe_rawdata1, safe_rawdata2)
safe_meas_list = c("HAI_1_SIR", "HAI_2_SIR", "HAI_3_SIR", "HAI_4_SIR", "HAI_5_SIR", "HAI_6_SIR", "COMP_HIP_KNEE", "PSI_90_SAFETY")
safe_hosp <- safe_rawdata[, c(1:8)]
safe_hosp = safe_hosp[!duplicated(safe_hosp),]
safe_meas <- safe_rawdata[, c(1, 9:10)]
safe_meas <- subset(safe_meas, Measure.ID %in% safe_meas_list)
safe_meas$Score <- func_numeric(safe_meas$Score)
safe_meas_score <- spread(safe_meas, Measure.ID, Score)
safe_meas_score <- func_rename(safe_meas_score)
safety <- safe_meas_score
# The HAI measures are related to infections contracted by the patients during their stay in the hospital
# we will negative zscore here as well
safety[, 2:ncol(safety)] <- sapply(safety[, -1], negative_zscore)
str(safety)
## 'data.frame':    4818 obs. of  9 variables:
##  $ Provider.ID        : int  10001 10005 10006 10007 10008 10011 10012 10016 10018 10019 ...
##  $ COMP_HIP_KNEE_score: num  -1.355 0.0745 -1.355 NA NA ...
##  $ HAI_1_SIR_score    : num  -2.351 -1.023 0.389 NA NA ...
##  $ HAI_2_SIR_score    : num  -2.088 0.05 -0.357 1.054 NA ...
##  $ HAI_3_SIR_score    : num  -1.135 0.723 0.818 NA NA ...
##  $ HAI_4_SIR_score    : num  1.02 NA NA NA NA ...
##  $ HAI_5_SIR_score    : num  0.647 -0.457 -0.312 NA NA ...
##  $ HAI_6_SIR_score    : num  0.0566 0.7984 0.5887 1.5849 0.4489 ...
##  $ PSI_90_SAFETY_score: num  1.2108 0.2304 -0.1156 0.5764 -0.0579 ...
# Outlier treatment: According to the CMS documentation, they've performed the outlier treatment for
# measures at the 0.125th and the 99.875th percentiles
safety <- treat_outliers(safety)
safe_master <- merge(safe_hosp, safety, "Provider.ID")
dim(safe_master)
## [1] 4818   16
# [1] 4818   16
write.csv(safety, "cleaned_safety_data.csv")

4. Experience - Load file “HCAHPS - Hospital.csv” into experience data rame

expe_rawdata <- read.csv("HCAHPS - Hospital.csv", stringsAsFactors = FALSE, na.strings = c("Not Available", "Not Applicable"))
expe_meas_list = c("H_CLEAN_LINEAR_SCORE", "H_COMP_1_LINEAR_SCORE", "H_COMP_2_LINEAR_SCORE", "H_COMP_3_LINEAR_SCORE", "H_COMP_4_LINEAR_SCORE", "H_COMP_5_LINEAR_SCORE", "H_COMP_6_LINEAR_SCORE", "H_COMP_7_LINEAR_SCORE", "H_HSP_RATING_LINEAR_SCORE", "H_QUIET_LINEAR_SCORE", "H_RECMND_LINEAR_SCORE")
names(expe_rawdata)[names(expe_rawdata) == "HCAHPS.Question"] <- "Measure.Name"
names(expe_rawdata)[names(expe_rawdata) == "HCAHPS.Measure.ID"] <- "Measure.ID"
names(expe_rawdata)[names(expe_rawdata) == "HCAHPS.Linear.Mean.Value"] <- "Score"
expe_hosp <- expe_rawdata[, c(1:8)]
expe_hosp = expe_hosp[!duplicated(expe_hosp),]
expe_meas <- expe_rawdata[, c(1, 9, 16)]
expe_meas <- subset(expe_meas, Measure.ID %in% expe_meas_list)
expe_meas$Score <- func_numeric(expe_meas$Score)
expe_meas_score <- spread(expe_meas, Measure.ID, Score)
experience <- expe_meas_score
# It measures cleanliness, patient hospitality and doctors/staff communication,
# hospital environment etc. We will use positive zscore here
experience[, 2:ncol(experience)] <- sapply(experience[, -1], positive_zscore)
str(experience)
## 'data.frame':    4818 obs. of  12 variables:
##  $ Provider.ID              : int  10001 10005 10006 10007 10008 10011 10012 10016 10018 10019 ...
##  $ H_CLEAN_LINEAR_SCORE     : num  -0.853 -1.112 -1.112 0.442 NA ...
##  $ H_COMP_1_LINEAR_SCORE    : num  -0.524 -0.129 -0.129 -0.129 NA ...
##  $ H_COMP_2_LINEAR_SCORE    : num  0.0412 0.8596 0.8596 1.678 NA ...
##  $ H_COMP_3_LINEAR_SCORE    : num  -1.2 -0.29 -0.517 0.392 NA ...
##  $ H_COMP_4_LINEAR_SCORE    : num  -0.606 0.167 -0.22 0.553 NA ...
##  $ H_COMP_5_LINEAR_SCORE    : num  -0.415 0.285 -0.182 0.751 NA ...
##  $ H_COMP_6_LINEAR_SCORE    : num  0.0276 0.3087 -1.0964 -0.2534 NA ...
##  $ H_COMP_7_LINEAR_SCORE    : num  0.165 -0.183 -0.532 0.165 NA ...
##  $ H_HSP_RATING_LINEAR_SCORE: num  0.0842 0.3915 -1.1451 -0.5304 NA ...
##  $ H_QUIET_LINEAR_SCORE     : num  0.969 0.577 0.577 1.751 NA ...
##  $ H_RECMND_LINEAR_SCORE    : num  0.45 0.221 -0.923 -0.465 NA ...
# Outlier treatment: According to the CMS documentation, they've performed the outlier treatment for
# measures at the 0.125th and the 99.875th percentiles
experience <- treat_outliers(experience)
expe_master <- merge(expe_hosp, experience, by = "Provider.ID")
dim(expe_master)
## [1] 4818   19
# [1] 4818   19
write.csv(experience, "cleaned_experience_data.csv")

5. Medical - Load file “Outpatient Imaging Efficiency - Hopital.csv” into medical data frame

medi_rawdata <- read.csv("Outpatient Imaging Efficiency - Hospital.csv", stringsAsFactors = FALSE, na.strings = c("Not Available", "Not Applicable"))
medi_meas_list = c("OP_10", "OP_11", "OP_13", "OP_14", "OP_8")
medi_hosp <- medi_rawdata[, c(1:8)]
medi_hosp = medi_hosp[!duplicated(medi_hosp),]
medi_meas <- medi_rawdata[, c(1, 9, 11)]
medi_meas <- subset(medi_meas, Measure.ID %in% medi_meas_list)
medi_meas$Score <- as.numeric(medi_meas$Score)
medi_meas_score <- spread(medi_meas, Measure.ID, Score)
medi_meas_score <- func_rename(medi_meas_score)
medical <- medi_meas_score
# Unecessary usage of imaging tests, lower the better. We will use the negative zscore
medical[, 2:ncol(medical)] <- sapply(medical[, -1], negative_zscore)
str(medical)
## 'data.frame':    4818 obs. of  6 variables:
##  $ Provider.ID: int  10001 10005 10006 10007 10008 10011 10012 10016 10018 10019 ...
##  $ OP_10_score: num  0.251 -0.423 -0.277 -1.498 0.524 ...
##  $ OP_11_score: num  0.389 -1.204 -0.245 -0.502 NA ...
##  $ OP_13_score: num  -1.2 -0.305 2.33 NA NA ...
##  $ OP_14_score: num  0.207 -0.649 -0.97 NA 1.171 ...
##  $ OP_8_score : num  0.3 -0.378 -0.782 NA NA ...
# Outlier treatment: According to the CMS documentation, they've performed the outlier treatment for
# measures at the 0.125th and the 99.875th percentiles
medical <- treat_outliers(medical)
medi_master <- merge(medi_hosp, medical, by = "Provider.ID")
dim(medi_master)
## [1] 4818   13
# [1] 4818   13
write.csv(medical, "cleaned_medical_data.csv")

6. Timeliness - Load file “Timely and Effective Care - Hospital.csv” into timeliness data frame

time_rawdata <- read.csv("Timely and Effective Care - Hospital.csv", stringsAsFactors = FALSE, na.strings = c("Not Available", "Not Applicable"))
time_meas_list = c("ED_1b", "ED_2b", "OP_18b", "OP_20", "OP_21", "OP_3b", "OP_5")
time_hosp <- time_rawdata[, c(1:8)]
time_hosp = time_hosp[!duplicated(time_hosp),]
time_meas <- time_rawdata[, c(1, 10, 12)]
time_meas <- subset(time_meas, Measure.ID %in% time_meas_list)
time_meas$Score <- as.numeric(time_meas$Score)
time_meas_score <- spread(time_meas, Measure.ID, Score)
time_meas_score <- func_rename(time_meas_score)
timeliness <- time_meas_score
# All the measures in timeliness indicate the average time the patient had to wait
# before being attended by the doctors or concerned specialists. We will use negative zscore
timeliness[, 2:ncol(timeliness)] <- sapply(timeliness[, -1], negative_zscore)
str(timeliness)
## 'data.frame':    4818 obs. of  8 variables:
##  $ Provider.ID : int  10001 10005 10006 10007 10008 10011 10012 10016 10018 10019 ...
##  $ ED_1b_score : num  0.0892 0.3415 0.5938 0.5743 0.9527 ...
##  $ ED_2b_score : num  0.508 0.463 0.357 0.508 0.69 ...
##  $ OP_18b_score: num  -1.266 0.616 0.235 0.568 1.068 ...
##  $ OP_20_score : num  -2.414 -0.049 1.009 -0.733 -0.049 ...
##  $ OP_21_score : num  -2.587 -0.38 -0.267 -2.078 0.243 ...
##  $ OP_3b_score : num  NA NA NA NA NA ...
##  $ OP_5_score  : num  NA -0.714 NA 0.248 NA ...
# Outlier treatment: According to the CMS documentation, they've performed the outlier treatment for
# measures at the 0.125th and the 99.875th percentiles
timeliness <- treat_outliers(timeliness)
time_master <- merge(time_hosp, timeliness, by = "Provider.ID")
dim(time_master)
## [1] 4818   15
# [1] 4818   15
write.csv(timeliness, "cleaned_timeliness_data.csv")

7. Timeliness - Load file “Timely and Effective Care - Hospital.csv” into timeliness data frame

effe_rawdata <- time_rawdata
effe_meas_list = c("CAC_3", "IMM_2", "IMM_3_OP_27_FAC_ADHPCT", "OP_22", "OP_23", "OP_29", "OP_30", "OP_4", "PC_01", "STK_4", "STK_5", "STK_6", "STK_8", "VTE_1", "VTE_2", "VTE_3", "VTE_5", "VTE_6")
effe_hosp <- effe_rawdata[, c(1:8)]
effe_hosp = effe_hosp[!duplicated(effe_hosp),]
effe_meas <- effe_rawdata[, c(1, 10, 12)]
effe_meas <- subset(effe_meas, Measure.ID %in% effe_meas_list)
effe_meas$Score <- as.numeric(effe_meas$Score)
effe_meas_score <- spread(effe_meas, Measure.ID, Score)
effe_meas_score <- func_rename(effe_meas_score)
effectiveness <- effe_meas_score
# Effectiveness has some columns for which the value higher is better, and few the score lower is better
# We will both postive and negative zscores here for the filtered columns
positive_measures <- c(2, 3, 4, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18)
negative_measures <- c(5, 10, 19)
effectiveness[, positive_measures] <- sapply(effectiveness[, positive_measures], positive_zscore)
effectiveness[, negative_measures] <- sapply(effectiveness[, negative_measures], negative_zscore)
str(effectiveness)
## 'data.frame':    4818 obs. of  19 variables:
##  $ Provider.ID                 : int  10001 10005 10006 10007 10008 10011 10012 10016 10018 10019 ...
##  $ CAC_3_score                 : num  NA NA NA NA NA NA NA NA NA NA ...
##  $ IMM_2_score                 : num  0.364 0.53 0.613 0.53 0.197 ...
##  $ IMM_3_OP_27_FAC_ADHPCT_score: num  -0.233 -0.099 0.169 -2.11 -2.781 ...
##  $ OP_22_score                 : num  -1.201 -0.108 0.438 0.438 0.438 ...
##  $ OP_23_score                 : num  NA 0.783 NA NA NA ...
##  $ OP_29_score                 : num  NA 0.692 -0.102 -2.627 0.836 ...
##  $ OP_30_score                 : num  0.0711 0.5002 0.3285 -3.4479 0.7148 ...
##  $ OP_4_score                  : num  NA 0.546 NA -1.232 NA ...
##  $ PC_01_score                 : num  0.539 0.324 0.539 NA NA ...
##  $ STK_4_score                 : num  -1.23 NA NA NA NA ...
##  $ STK_5_score                 : num  -0.0249 0.1932 0.1932 0.4114 NA ...
##  $ STK_6_score                 : num  0.446 -0.915 0.198 -3.019 NA ...
##  $ STK_8_score                 : num  -0.57 0.618 -0.296 NA NA ...
##  $ VTE_1_score                 : num  0.334 0.178 0.412 0.334 0.489 ...
##  $ VTE_2_score                 : num  0.381 -0.45 -1.282 0.381 NA ...
##  $ VTE_3_score                 : num  -0.278 0.819 -0.887 NA NA ...
##  $ VTE_5_score                 : num  -0.2536 0.6352 -0.0759 NA NA ...
##  $ VTE_6_score                 : num  0.416 NA 0.416 NA NA ...
# Outlier treatment: According to the CMS documentation, they've performed the outlier treatment for
# measures at the 0.125th and the 99.875th percentiles
effectiveness <- treat_outliers(effectiveness)
effe_master <- merge(effe_hosp, effectiveness, by = "Provider.ID")
dim(effe_master)
## [1] 4818   26
# [1] 4818   26
write.csv(effectiveness, "cleaned_effectiveness_data.csv")
merge1 <- merge(read_master, mort_master)
merge2 <- merge(merge1, safe_master)
merge3 <- merge(merge2, expe_master)
merge4 <- merge(merge3, medi_master)
merge5 <- merge(merge4, time_master)
merge6 <- merge(merge5, effe_master)
str(merge6)
## 'data.frame':    4818 obs. of  72 variables:
##  $ Provider.ID                 : int  100001 100002 100006 100007 100008 100009 10001 100012 100014 100017 ...
##  $ Hospital.Name               : chr  "UF HEALTH JACKSONVILLE" "BETHESDA HOSPITAL EAST" "ORLANDO HEALTH" "FLORIDA HOSPITAL" ...
##  $ Address                     : chr  "655 W 8TH ST" "2815 S SEACREST BLVD" "52 W UNDERWOOD ST" "601 E ROLLINS ST" ...
##  $ City                        : chr  "JACKSONVILLE" "BOYNTON BEACH" "ORLANDO" "ORLANDO" ...
##  $ State                       : chr  "FL" "FL" "FL" "FL" ...
##  $ ZIP.Code                    : int  32209 33435 32806 32803 33176 33136 36301 33901 32170 32114 ...
##  $ County.Name                 : chr  "DUVAL" "PALM BEACH" "ORANGE" "ORANGE" ...
##  $ Phone.Number                : num  9.04e+09 5.62e+09 3.22e+09 4.07e+09 7.87e+09 ...
##  $ READM_30_AMI_score          : num  -2.618 0.722 0.304 -0.948 1.348 ...
##  $ READM_30_CABG_score         : num  -1.946 0.627 0.805 -2.39 0.716 ...
##  $ READM_30_COPD_score         : num  -0.1581 -0.5518 0.0782 -2.9142 0.3144 ...
##  $ READM_30_HF_score           : num  -1.967 -0.364 1.305 -2.034 -0.431 ...
##  $ READM_30_HIP_KNEE_score     : num  -0.703 1.284 -0.342 -1.426 1.103 ...
##  $ READM_30_HOSP_WIDE_score    : num  -1.963 0.457 -0.511 -3.658 0.821 ...
##  $ READM_30_PN_score           : num  -1.245 0.426 0.287 -1.593 -0.479 ...
##  $ READM_30_STK_score          : num  -1.15 1.367 -0.777 -2.175 -0.87 ...
##  $ MORT_30_AMI_score           : num  -2.504 1.489 -0.907 -0.667 0.451 ...
##  $ MORT_30_CABG_score          : num  -0.308 -0.193 0.495 -2.257 1.068 ...
##  $ MORT_30_COPD_score          : num  -0.0154 -0.2851 0.8833 1.7821 1.6024 ...
##  $ MORT_30_HF_score            : num  1.2026 0.1765 -0.0971 0.929 0.7922 ...
##  $ MORT_30_PN_score            : num  1.335 0.762 0.332 0.475 1.717 ...
##  $ MORT_30_STK_score           : num  -1.9646 0.4992 0.0185 1.7612 1.3405 ...
##  $ PSI_4_SURG_COMP_score       : num  -1.068 1.544 -0.49 0.998 0.144 ...
##  $ COMP_HIP_KNEE_score         : num  -0.104 1.325 0.432 0.789 1.504 ...
##  $ HAI_1_SIR_score             : num  -3.889 0.133 0.274 0.421 -0.492 ...
##  $ HAI_2_SIR_score             : num  -0.4762 0.0302 -0.5797 0.1117 0.0236 ...
##  $ HAI_3_SIR_score             : num  0.087 -0.379 0.658 -0.216 0.237 ...
##  $ HAI_4_SIR_score             : num  -2.088 0.228 0.309 0.488 -2.129 ...
##  $ HAI_5_SIR_score             : num  -3.193 -1.519 0.639 0.287 0.15 ...
##  $ HAI_6_SIR_score             : num  -1.204 0.395 -0.394 0.156 0.179 ...
##  $ PSI_90_SAFETY_score         : num  -1.557 0.346 0.288 -0.635 -1.384 ...
##  $ H_CLEAN_LINEAR_SCORE        : num  -1.888 -1.112 0.183 0.701 0.183 ...
##  $ H_COMP_1_LINEAR_SCORE       : num  -0.918 -0.918 -0.129 0.265 0.265 ...
##  $ H_COMP_2_LINEAR_SCORE       : num  -0.777 -1.596 -0.368 -0.777 0.45 ...
##  $ H_COMP_3_LINEAR_SCORE       : num  -0.9724 -1.4273 -0.29 -0.0626 -0.29 ...
##  $ H_COMP_4_LINEAR_SCORE       : num  -1.379 -0.22 0.167 0.167 0.167 ...
##  $ H_COMP_5_LINEAR_SCORE       : num  -0.4152 -1.3482 -0.182 0.5178 0.0513 ...
##  $ H_COMP_6_LINEAR_SCORE       : num  -0.534 -1.939 -0.815 0.309 -0.253 ...
##  $ H_COMP_7_LINEAR_SCORE       : num  -0.532 -0.532 0.165 0.513 0.861 ...
##  $ H_HSP_RATING_LINEAR_SCORE   : num  -0.8378 -0.2231 0.0842 0.3915 0.3915 ...
##  $ H_QUIET_LINEAR_SCORE        : num  -0.59675 -0.00976 0.38156 0.57722 0.38156 ...
##  $ H_RECMND_LINEAR_SCORE       : num  -1.151 -0.236 0.221 0.679 0.908 ...
##  $ OP_10_score                 : num  -2.602 0.73 0.554 0.495 0.73 ...
##  $ OP_11_score                 : num  -2.197 0.423 0.474 0.474 0.44 ...
##  $ OP_13_score                 : num  1.1862 NA 0.0925 -0.5537 -1.7468 ...
##  $ OP_14_score                 : num  0.0469 -1.1843 -0.756 -0.3813 0.3681 ...
##  $ OP_8_score                  : num  1.295 NA NA -0.349 NA ...
##  $ ED_1b_score                 : num  -1.735 0.215 -0.503 -0.629 -1.851 ...
##  $ ED_2b_score                 : num  -1.312 -0.478 -0.235 -0.281 -2.086 ...
##  $ OP_18b_score                : num  -1.766 -0.123 -0.551 -1.075 -1.932 ...
##  $ OP_20_score                 : num  -0.609 0.76 -0.547 -0.36 -1.854 ...
##  $ OP_21_score                 : num  -0.946 -0.153 -0.55 -1.512 0.696 ...
##  $ OP_3b_score                 : num  NA NA NA NA NA NA NA NA NA NA ...
##  $ OP_5_score                  : num  -5.14 NA NA NA NA ...
##  $ CAC_3_score                 : num  NA NA 0.606 NA NA ...
##  $ IMM_2_score                 : num  0.281 0.53 0.197 0.53 0.613 ...
##  $ IMM_3_OP_27_FAC_ADHPCT_score: num  0.8395 -1.5068 0.0351 -0.3672 0.1691 ...
##  $ OP_22_score                 : num  -3.387 0.438 -0.108 -0.108 -0.108 ...
##  $ OP_23_score                 : num  -0.777 NA -0.777 -2.136 NA ...
##  $ OP_29_score                 : num  0.981 -1.184 0.764 -1.364 -1.148 ...
##  $ OP_30_score                 : num  0.844 0.2 0.629 -0.315 0.371 ...
##  $ OP_4_score                  : num  -2.48 NA NA NA NA ...
##  $ PC_01_score                 : num  0.539 0.539 -0.75 0.539 0.539 ...
##  $ STK_4_score                 : num  0.153 -0.179 0.374 0.374 0.594 ...
##  $ STK_5_score                 : num  -0.243 0.1932 -0.0249 -0.0249 0.4114 ...
##  $ STK_6_score                 : num  0.446 -0.297 0.57 0.322 0.446 ...
##  $ STK_8_score                 : num  -0.113 0.618 0.253 0.435 0.618 ...
##  $ VTE_1_score                 : num  0.334 0.489 0.412 0.412 0.567 ...
##  $ VTE_2_score                 : num  -0.118 -0.45 0.547 0.381 0.547 ...
##  $ VTE_3_score                 : num  -0.643 0.332 0.21 -1.253 0.819 ...
##  $ VTE_5_score                 : num  0.635 0.369 0.191 0.102 0.635 ...
##  $ VTE_6_score                 : num  0.416 0.416 0.212 0.212 0.416 ...
dim(merge6)
## [1] 4818   72
# [1] 4818   72

master_data_x <- merge6

Raw data is ready with all required 64 measures and 8 general columns

2. Data Cleaning

## Remove duplicate Data
master_data_x = master_data_x[!duplicated(master_data_x),]
dim(master_data_x)  ## No duplicates found
## [1] 4818   72
# [1] 4818 72

## Remove NA Values
sapply(master_data_x, function(x) sum(length(which(is.na(x)))))
##                  Provider.ID                Hospital.Name 
##                            0                            0 
##                      Address                         City 
##                            0                            0 
##                        State                     ZIP.Code 
##                            0                            0 
##                  County.Name                 Phone.Number 
##                            0                            0 
##           READM_30_AMI_score          READM_30_CABG_score 
##                         2655                         3791 
##          READM_30_COPD_score            READM_30_HF_score 
##                         1170                         1168 
##      READM_30_HIP_KNEE_score     READM_30_HOSP_WIDE_score 
##                         2087                          423 
##            READM_30_PN_score           READM_30_STK_score 
##                          729                         2210 
##            MORT_30_AMI_score           MORT_30_CABG_score 
##                         2430                         3780 
##           MORT_30_COPD_score             MORT_30_HF_score 
##                         1227                         1200 
##             MORT_30_PN_score            MORT_30_STK_score 
##                          730                         2142 
##        PSI_4_SURG_COMP_score          COMP_HIP_KNEE_score 
##                         3000                         2104 
##              HAI_1_SIR_score              HAI_2_SIR_score 
##                         2443                         1929 
##              HAI_3_SIR_score              HAI_4_SIR_score 
##                         2775                         3962 
##              HAI_5_SIR_score              HAI_6_SIR_score 
##                         2988                         1546 
##          PSI_90_SAFETY_score         H_CLEAN_LINEAR_SCORE 
##                         1594                         1310 
##        H_COMP_1_LINEAR_SCORE        H_COMP_2_LINEAR_SCORE 
##                         1310                         1310 
##        H_COMP_3_LINEAR_SCORE        H_COMP_4_LINEAR_SCORE 
##                         1310                         1310 
##        H_COMP_5_LINEAR_SCORE        H_COMP_6_LINEAR_SCORE 
##                         1310                         1310 
##        H_COMP_7_LINEAR_SCORE    H_HSP_RATING_LINEAR_SCORE 
##                         1310                         1310 
##         H_QUIET_LINEAR_SCORE        H_RECMND_LINEAR_SCORE 
##                         1310                         1310 
##                  OP_10_score                  OP_11_score 
##                         1189                         1469 
##                  OP_13_score                  OP_14_score 
##                         2585                         2514 
##                   OP_8_score                  ED_1b_score 
##                         3294                         1222 
##                  ED_2b_score                 OP_18b_score 
##                         1238                         1234 
##                  OP_20_score                  OP_21_score 
##                         1223                         1505 
##                  OP_3b_score                   OP_5_score 
##                         4425                         2574 
##                  CAC_3_score                  IMM_2_score 
##                         4643                         1034 
## IMM_3_OP_27_FAC_ADHPCT_score                  OP_22_score 
##                          711                         1543 
##                  OP_23_score                  OP_29_score 
##                         3608                         2087 
##                  OP_30_score                   OP_4_score 
##                         2191                         2599 
##                  PC_01_score                  STK_4_score 
##                         2296                         3919 
##                  STK_5_score                  STK_6_score 
##                         3276                         2239 
##                  STK_8_score                  VTE_1_score 
##                         2454                         1200 
##                  VTE_2_score                  VTE_3_score 
##                         1883                         2332 
##                  VTE_5_score                  VTE_6_score 
##                         2587                         3560
# Provider.ID                Hospital.Name               Address                       City                        State
# 0                            0                            0                            0                            0
# ZIP.Code                   County.Name                 Phone.Number                  READM_30_AMI_score          READM_30_CABG_score
# 0                            0                            0                            2655                         3791
# READM_30_COPD_score        READM_30_HF_score           READM_30_HIP_KNEE_score       READM_30_HOSP_WIDE_score    READM_30_PN_score
# 1170                         1168                         2087                         423                          729
# READM_30_STK_score         MORT_30_AMI_score           MORT_30_CABG_score            MORT_30_COPD_score          MORT_30_HF_score
# 2210                         2430                         3780                         1227                         1200
# MORT_30_PN_score           MORT_30_STK_score           PSI_4_SURG_COMP_score         COMP_HIP_KNEE_score         HAI_1_SIR_score
# 730                         2142                         3000                          2104                         2443
# HAI_2_SIR_score            HAI_3_SIR_score             HAI_4_SIR_score               HAI_5_SIR_score             HAI_6_SIR_score
# 1929                         2775                         3962                         2988                         1546
# PSI_90_SAFETY_score        H_CLEAN_LINEAR_SCORE        H_COMP_1_LINEAR_SCORE         H_COMP_2_LINEAR_SCORE       H_COMP_3_LINEAR_SCORE
# 1594                         1310                         1310                         1310                         1310
# H_COMP_4_LINEAR_SCORE      H_COMP_5_LINEAR_SCORE       H_COMP_6_LINEAR_SCORE         H_COMP_7_LINEAR_SCORE       H_HSP_RATING_LINEAR_SCORE
# 1310                         1310                         1310                         1310                         1310
# H_QUIET_LINEAR_SCORE       H_RECMND_LINEAR_SCORE       OP_10_score                   OP_11_score                 OP_13_score
# 1310                         1310                         1189                         1469                         2585
# OP_14_score                OP_8_score                  ED_1b_score                   ED_2b_score                 OP_18b_score
# 2514                         3294                         1222                         1238                         1234
# OP_20_score                OP_21_score                 OP_3b_score                   OP_5_score                  CAC_3_score
# 1223                         1505                         4425                         2574                         4643
# IMM_2_score                IMM_3_OP_27_FAC_ADHPCT_score OP_22_score                  OP_23_score                 OP_29_score
# 1034                          711                         1543                         3608                         2087
# OP_30_score                OP_4_score                  PC_01_score                   STK_4_score                 STK_5_score
# 2191                         2599                         2296                         3919                         3276
# STK_6_score                STK_8_score                  VTE_1_score                  VTE_2_score                 VTE_3_score
# 2239                         2454                         1200                         1883                         2332
# VTE_5_score                VTE_6_score
# 2587                         3560
# >

sum(sapply(master_data_x, function(x) sum(length(which(is.na(x))))))
## [1] 131127
# [1] 131127

## The Score columns are having 131127 NA values, score columns are very important for our further analysis. As these are all independent(X) variables
## we will deal with the NA cleaning after merging with Dependent variable (ratings- y) in later phase

str(master_data_x)
## 'data.frame':    4818 obs. of  72 variables:
##  $ Provider.ID                 : int  100001 100002 100006 100007 100008 100009 10001 100012 100014 100017 ...
##  $ Hospital.Name               : chr  "UF HEALTH JACKSONVILLE" "BETHESDA HOSPITAL EAST" "ORLANDO HEALTH" "FLORIDA HOSPITAL" ...
##  $ Address                     : chr  "655 W 8TH ST" "2815 S SEACREST BLVD" "52 W UNDERWOOD ST" "601 E ROLLINS ST" ...
##  $ City                        : chr  "JACKSONVILLE" "BOYNTON BEACH" "ORLANDO" "ORLANDO" ...
##  $ State                       : chr  "FL" "FL" "FL" "FL" ...
##  $ ZIP.Code                    : int  32209 33435 32806 32803 33176 33136 36301 33901 32170 32114 ...
##  $ County.Name                 : chr  "DUVAL" "PALM BEACH" "ORANGE" "ORANGE" ...
##  $ Phone.Number                : num  9.04e+09 5.62e+09 3.22e+09 4.07e+09 7.87e+09 ...
##  $ READM_30_AMI_score          : num  -2.618 0.722 0.304 -0.948 1.348 ...
##  $ READM_30_CABG_score         : num  -1.946 0.627 0.805 -2.39 0.716 ...
##  $ READM_30_COPD_score         : num  -0.1581 -0.5518 0.0782 -2.9142 0.3144 ...
##  $ READM_30_HF_score           : num  -1.967 -0.364 1.305 -2.034 -0.431 ...
##  $ READM_30_HIP_KNEE_score     : num  -0.703 1.284 -0.342 -1.426 1.103 ...
##  $ READM_30_HOSP_WIDE_score    : num  -1.963 0.457 -0.511 -3.658 0.821 ...
##  $ READM_30_PN_score           : num  -1.245 0.426 0.287 -1.593 -0.479 ...
##  $ READM_30_STK_score          : num  -1.15 1.367 -0.777 -2.175 -0.87 ...
##  $ MORT_30_AMI_score           : num  -2.504 1.489 -0.907 -0.667 0.451 ...
##  $ MORT_30_CABG_score          : num  -0.308 -0.193 0.495 -2.257 1.068 ...
##  $ MORT_30_COPD_score          : num  -0.0154 -0.2851 0.8833 1.7821 1.6024 ...
##  $ MORT_30_HF_score            : num  1.2026 0.1765 -0.0971 0.929 0.7922 ...
##  $ MORT_30_PN_score            : num  1.335 0.762 0.332 0.475 1.717 ...
##  $ MORT_30_STK_score           : num  -1.9646 0.4992 0.0185 1.7612 1.3405 ...
##  $ PSI_4_SURG_COMP_score       : num  -1.068 1.544 -0.49 0.998 0.144 ...
##  $ COMP_HIP_KNEE_score         : num  -0.104 1.325 0.432 0.789 1.504 ...
##  $ HAI_1_SIR_score             : num  -3.889 0.133 0.274 0.421 -0.492 ...
##  $ HAI_2_SIR_score             : num  -0.4762 0.0302 -0.5797 0.1117 0.0236 ...
##  $ HAI_3_SIR_score             : num  0.087 -0.379 0.658 -0.216 0.237 ...
##  $ HAI_4_SIR_score             : num  -2.088 0.228 0.309 0.488 -2.129 ...
##  $ HAI_5_SIR_score             : num  -3.193 -1.519 0.639 0.287 0.15 ...
##  $ HAI_6_SIR_score             : num  -1.204 0.395 -0.394 0.156 0.179 ...
##  $ PSI_90_SAFETY_score         : num  -1.557 0.346 0.288 -0.635 -1.384 ...
##  $ H_CLEAN_LINEAR_SCORE        : num  -1.888 -1.112 0.183 0.701 0.183 ...
##  $ H_COMP_1_LINEAR_SCORE       : num  -0.918 -0.918 -0.129 0.265 0.265 ...
##  $ H_COMP_2_LINEAR_SCORE       : num  -0.777 -1.596 -0.368 -0.777 0.45 ...
##  $ H_COMP_3_LINEAR_SCORE       : num  -0.9724 -1.4273 -0.29 -0.0626 -0.29 ...
##  $ H_COMP_4_LINEAR_SCORE       : num  -1.379 -0.22 0.167 0.167 0.167 ...
##  $ H_COMP_5_LINEAR_SCORE       : num  -0.4152 -1.3482 -0.182 0.5178 0.0513 ...
##  $ H_COMP_6_LINEAR_SCORE       : num  -0.534 -1.939 -0.815 0.309 -0.253 ...
##  $ H_COMP_7_LINEAR_SCORE       : num  -0.532 -0.532 0.165 0.513 0.861 ...
##  $ H_HSP_RATING_LINEAR_SCORE   : num  -0.8378 -0.2231 0.0842 0.3915 0.3915 ...
##  $ H_QUIET_LINEAR_SCORE        : num  -0.59675 -0.00976 0.38156 0.57722 0.38156 ...
##  $ H_RECMND_LINEAR_SCORE       : num  -1.151 -0.236 0.221 0.679 0.908 ...
##  $ OP_10_score                 : num  -2.602 0.73 0.554 0.495 0.73 ...
##  $ OP_11_score                 : num  -2.197 0.423 0.474 0.474 0.44 ...
##  $ OP_13_score                 : num  1.1862 NA 0.0925 -0.5537 -1.7468 ...
##  $ OP_14_score                 : num  0.0469 -1.1843 -0.756 -0.3813 0.3681 ...
##  $ OP_8_score                  : num  1.295 NA NA -0.349 NA ...
##  $ ED_1b_score                 : num  -1.735 0.215 -0.503 -0.629 -1.851 ...
##  $ ED_2b_score                 : num  -1.312 -0.478 -0.235 -0.281 -2.086 ...
##  $ OP_18b_score                : num  -1.766 -0.123 -0.551 -1.075 -1.932 ...
##  $ OP_20_score                 : num  -0.609 0.76 -0.547 -0.36 -1.854 ...
##  $ OP_21_score                 : num  -0.946 -0.153 -0.55 -1.512 0.696 ...
##  $ OP_3b_score                 : num  NA NA NA NA NA NA NA NA NA NA ...
##  $ OP_5_score                  : num  -5.14 NA NA NA NA ...
##  $ CAC_3_score                 : num  NA NA 0.606 NA NA ...
##  $ IMM_2_score                 : num  0.281 0.53 0.197 0.53 0.613 ...
##  $ IMM_3_OP_27_FAC_ADHPCT_score: num  0.8395 -1.5068 0.0351 -0.3672 0.1691 ...
##  $ OP_22_score                 : num  -3.387 0.438 -0.108 -0.108 -0.108 ...
##  $ OP_23_score                 : num  -0.777 NA -0.777 -2.136 NA ...
##  $ OP_29_score                 : num  0.981 -1.184 0.764 -1.364 -1.148 ...
##  $ OP_30_score                 : num  0.844 0.2 0.629 -0.315 0.371 ...
##  $ OP_4_score                  : num  -2.48 NA NA NA NA ...
##  $ PC_01_score                 : num  0.539 0.539 -0.75 0.539 0.539 ...
##  $ STK_4_score                 : num  0.153 -0.179 0.374 0.374 0.594 ...
##  $ STK_5_score                 : num  -0.243 0.1932 -0.0249 -0.0249 0.4114 ...
##  $ STK_6_score                 : num  0.446 -0.297 0.57 0.322 0.446 ...
##  $ STK_8_score                 : num  -0.113 0.618 0.253 0.435 0.618 ...
##  $ VTE_1_score                 : num  0.334 0.489 0.412 0.412 0.567 ...
##  $ VTE_2_score                 : num  -0.118 -0.45 0.547 0.381 0.547 ...
##  $ VTE_3_score                 : num  -0.643 0.332 0.21 -1.253 0.819 ...
##  $ VTE_5_score                 : num  0.635 0.369 0.191 0.102 0.635 ...
##  $ VTE_6_score                 : num  0.416 0.416 0.212 0.212 0.416 ...

Load Dependent Variable data from Hospital Genral Information.csv file

hospital_ratings <- read.csv("Hospital General Information.csv", stringsAsFactors = FALSE, na.strings = c("Not Available", "Not Applicable"))
dim(hospital_ratings)  ## 4818 rows and 28 columns  - For each hospital one row is existing
## [1] 4818   28
# [1] 4818   28
str(hospital_ratings)
## 'data.frame':    4818 obs. of  28 variables:
##  $ Provider.ID                                                  : int  10001 10005 10006 10007 10008 10011 10012 10016 10018 10019 ...
##  $ Hospital.Name                                                : chr  "SOUTHEAST ALABAMA MEDICAL CENTER" "MARSHALL MEDICAL CENTER SOUTH" "ELIZA COFFEE MEMORIAL HOSPITAL" "MIZELL MEMORIAL HOSPITAL" ...
##  $ Address                                                      : chr  "1108 ROSS CLARK CIRCLE" "2505 U S HIGHWAY 431 NORTH" "205 MARENGO STREET" "702 N MAIN ST" ...
##  $ City                                                         : chr  "DOTHAN" "BOAZ" "FLORENCE" "OPP" ...
##  $ State                                                        : chr  "AL" "AL" "AL" "AL" ...
##  $ ZIP.Code                                                     : int  36301 35957 35631 36467 36049 35235 35968 35007 35233 35660 ...
##  $ County.Name                                                  : chr  "HOUSTON" "MARSHALL" "LAUDERDALE" "COVINGTON" ...
##  $ Phone.Number                                                 : num  3.35e+09 2.57e+09 2.57e+09 3.34e+09 3.34e+09 ...
##  $ Hospital.Type                                                : chr  "Acute Care Hospitals" "Acute Care Hospitals" "Acute Care Hospitals" "Acute Care Hospitals" ...
##  $ Hospital.Ownership                                           : chr  "Government - Hospital District or Authority" "Government - Hospital District or Authority" "Government - Hospital District or Authority" "Voluntary non-profit - Private" ...
##  $ Emergency.Services                                           : chr  "Yes" "Yes" "Yes" "Yes" ...
##  $ Meets.criteria.for.meaningful.use.of.EHRs                    : chr  "Y" "Y" "Y" "Y" ...
##  $ Hospital.overall.rating                                      : int  3 3 2 3 3 2 3 3 NA 2 ...
##  $ Hospital.overall.rating.footnote                             : chr  "" "" "" "" ...
##  $ Mortality.national.comparison                                : chr  "Same as the National average" "Below the National average" "Below the National average" "Same as the National average" ...
##  $ Mortality.national.comparison.footnote                       : chr  "" "" "" "" ...
##  $ Safety.of.care.national.comparison                           : chr  "Above the National average" "Same as the National average" "Same as the National average" "Same as the National average" ...
##  $ Safety.of.care.national.comparison.footnote                  : chr  "" "" "" "" ...
##  $ Readmission.national.comparison                              : chr  "Same as the National average" "Above the National average" "Same as the National average" "Below the National average" ...
##  $ Readmission.national.comparison.footnote                     : chr  "" "" "" "" ...
##  $ Patient.experience.national.comparison                       : chr  "Below the National average" "Same as the National average" "Below the National average" "Same as the National average" ...
##  $ Patient.experience.national.comparison.footnote              : chr  "" "" "" "" ...
##  $ Effectiveness.of.care.national.comparison                    : chr  "Same as the National average" "Same as the National average" "Same as the National average" "Same as the National average" ...
##  $ Effectiveness.of.care.national.comparison.footnote           : chr  "" "" "" "" ...
##  $ Timeliness.of.care.national.comparison                       : chr  "Same as the National average" "Above the National average" "Above the National average" "Above the National average" ...
##  $ Timeliness.of.care.national.comparison.footnote              : chr  "" "" "" "" ...
##  $ Efficient.use.of.medical.imaging.national.comparison         : chr  "Same as the National average" "Below the National average" "Same as the National average" NA ...
##  $ Efficient.use.of.medical.imaging.national.comparison.footnote: chr  "" "" "" "Results are not available for this reporting period" ...
master_data_y <- hospital_ratings

sum(is.na(hospital_ratings$Hospital.overall.rating))  ## 321 records having NA values
## [1] 1170
# [1] 1170

# We need only the Provide.ID and Hospital.overall.rating columns
master_data_y <- master_data_y[, c(1, 13)]
str(master_data_y)
## 'data.frame':    4818 obs. of  2 variables:
##  $ Provider.ID            : int  10001 10005 10006 10007 10008 10011 10012 10016 10018 10019 ...
##  $ Hospital.overall.rating: int  3 3 2 3 3 2 3 3 NA 2 ...
dim(master_data_y)  ## 4818 rows and 2 columns (Provider id , Hospital CMS rating)
## [1] 4818    2
# [1] 4818 2

## Merge X (independent) & Y (dependent) variables to one using Provider id
dim(master_data_x)
## [1] 4818   72
# [1] 4818   72
master_data <- merge(master_data_x, master_data_y, by = "Provider.ID")
dim(master_data) ## 4818 rows & 73 columns
## [1] 4818   73
#[1] 4818   73

Data cleaning Part 2

## Remove all the record having NA in Hospital.overall.rating column

sum(is.na(master_data$Hospital.overall.rating))  ## 1170 records having NA values
## [1] 1170
# [1] 1170

master_data_with_na <- master_data[is.na(master_data$Hospital.overall.rating),]
master_data_without_na <- master_data[!is.na(master_data$Hospital.overall.rating),]
dim(master_data_without_na)  ## 3648 rows & 73 columns  (4818 total records)
## [1] 3648   73
# [1] 3648   73
dim(master_data_with_na) ## 1170 rows and 73 columns
## [1] 1170   73
# [1] 1170   73

## NA values across all coulumns
sapply(master_data_without_na, function(x) sum(is.na(x)))
##                  Provider.ID                Hospital.Name 
##                            0                            0 
##                      Address                         City 
##                            0                            0 
##                        State                     ZIP.Code 
##                            0                            0 
##                  County.Name                 Phone.Number 
##                            0                            0 
##           READM_30_AMI_score          READM_30_CABG_score 
##                         1490                         2623 
##          READM_30_COPD_score            READM_30_HF_score 
##                          231                          207 
##      READM_30_HIP_KNEE_score     READM_30_HOSP_WIDE_score 
##                          992                            3 
##            READM_30_PN_score           READM_30_STK_score 
##                          125                         1049 
##            MORT_30_AMI_score           MORT_30_CABG_score 
##                         1267                         2612 
##           MORT_30_COPD_score             MORT_30_HF_score 
##                          257                          221 
##             MORT_30_PN_score            MORT_30_STK_score 
##                          131                          984 
##        PSI_4_SURG_COMP_score          COMP_HIP_KNEE_score 
##                         1831                         1007 
##              HAI_1_SIR_score              HAI_2_SIR_score 
##                         1322                          818 
##              HAI_3_SIR_score              HAI_4_SIR_score 
##                         1642                         2804 
##              HAI_5_SIR_score              HAI_6_SIR_score 
##                         1860                          497 
##          PSI_90_SAFETY_score         H_CLEAN_LINEAR_SCORE 
##                          605                          273 
##        H_COMP_1_LINEAR_SCORE        H_COMP_2_LINEAR_SCORE 
##                          273                          273 
##        H_COMP_3_LINEAR_SCORE        H_COMP_4_LINEAR_SCORE 
##                          273                          273 
##        H_COMP_5_LINEAR_SCORE        H_COMP_6_LINEAR_SCORE 
##                          273                          273 
##        H_COMP_7_LINEAR_SCORE    H_HSP_RATING_LINEAR_SCORE 
##                          273                          273 
##         H_QUIET_LINEAR_SCORE        H_RECMND_LINEAR_SCORE 
##                          273                          273 
##                  OP_10_score                  OP_11_score 
##                          287                          455 
##                  OP_13_score                  OP_14_score 
##                         1429                         1438 
##                   OP_8_score                  ED_1b_score 
##                         2141                          347 
##                  ED_2b_score                 OP_18b_score 
##                          350                          381 
##                  OP_20_score                  OP_21_score 
##                          376                          497 
##                  OP_3b_score                   OP_5_score 
##                         3267                         1582 
##                  CAC_3_score                  IMM_2_score 
##                         3516                          242 
## IMM_3_OP_27_FAC_ADHPCT_score                  OP_22_score 
##                          149                          546 
##                  OP_23_score                  OP_29_score 
##                         2467                         1008 
##                  OP_30_score                   OP_4_score 
##                         1095                         1606 
##                  PC_01_score                  STK_4_score 
##                         1203                         2762 
##                  STK_5_score                  STK_6_score 
##                         2133                         1102 
##                  STK_8_score                  VTE_1_score 
##                         1315                          327 
##                  VTE_2_score                  VTE_3_score 
##                          778                         1208 
##                  VTE_5_score                  VTE_6_score 
##                         1458                         2417 
##      Hospital.overall.rating 
##                            0
dim(master_data_without_na)  ## 3648 rows and 73 columns
## [1] 3648   73
# [1] 3648   73

Data Cleaning

# Remove all columns having more than 50% NA in the dataset .. which are not going to yield any outcome
# which is close to 1824 NA values in any x measure.. will remove the measure
## The following measures having >50% of its data as NA
## READM_30_CABG - 2623 | PSI_4_SURG_COMP - 1831 | HAI_4_SIR - 2804 | HAI_5_SIR - 1860 | OP_3b - 3267 |
## STK_4 - 2762 | STK_5 - 2133 | VTE_6 - 2417

output <- names(which(sapply(master_data_without_na, function(x) sum(is.na(x)) < 1824)))
output
##  [1] "Provider.ID"                  "Hospital.Name"               
##  [3] "Address"                      "City"                        
##  [5] "State"                        "ZIP.Code"                    
##  [7] "County.Name"                  "Phone.Number"                
##  [9] "READM_30_AMI_score"           "READM_30_COPD_score"         
## [11] "READM_30_HF_score"            "READM_30_HIP_KNEE_score"     
## [13] "READM_30_HOSP_WIDE_score"     "READM_30_PN_score"           
## [15] "READM_30_STK_score"           "MORT_30_AMI_score"           
## [17] "MORT_30_COPD_score"           "MORT_30_HF_score"            
## [19] "MORT_30_PN_score"             "MORT_30_STK_score"           
## [21] "COMP_HIP_KNEE_score"          "HAI_1_SIR_score"             
## [23] "HAI_2_SIR_score"              "HAI_3_SIR_score"             
## [25] "HAI_6_SIR_score"              "PSI_90_SAFETY_score"         
## [27] "H_CLEAN_LINEAR_SCORE"         "H_COMP_1_LINEAR_SCORE"       
## [29] "H_COMP_2_LINEAR_SCORE"        "H_COMP_3_LINEAR_SCORE"       
## [31] "H_COMP_4_LINEAR_SCORE"        "H_COMP_5_LINEAR_SCORE"       
## [33] "H_COMP_6_LINEAR_SCORE"        "H_COMP_7_LINEAR_SCORE"       
## [35] "H_HSP_RATING_LINEAR_SCORE"    "H_QUIET_LINEAR_SCORE"        
## [37] "H_RECMND_LINEAR_SCORE"        "OP_10_score"                 
## [39] "OP_11_score"                  "OP_13_score"                 
## [41] "OP_14_score"                  "ED_1b_score"                 
## [43] "ED_2b_score"                  "OP_18b_score"                
## [45] "OP_20_score"                  "OP_21_score"                 
## [47] "OP_5_score"                   "IMM_2_score"                 
## [49] "IMM_3_OP_27_FAC_ADHPCT_score" "OP_22_score"                 
## [51] "OP_29_score"                  "OP_30_score"                 
## [53] "OP_4_score"                   "PC_01_score"                 
## [55] "STK_6_score"                  "STK_8_score"                 
## [57] "VTE_1_score"                  "VTE_2_score"                 
## [59] "VTE_3_score"                  "VTE_5_score"                 
## [61] "Hospital.overall.rating"
master_data_without_na <- master_data_without_na[, output]
str(master_data_without_na)
## 'data.frame':    3648 obs. of  61 variables:
##  $ Provider.ID                 : int  10001 10005 10006 10007 10008 10011 10012 10016 10019 10021 ...
##  $ Hospital.Name               : chr  "SOUTHEAST ALABAMA MEDICAL CENTER" "MARSHALL MEDICAL CENTER SOUTH" "ELIZA COFFEE MEMORIAL HOSPITAL" "MIZELL MEMORIAL HOSPITAL" ...
##  $ Address                     : chr  "1108 ROSS CLARK CIRCLE" "2505 U S HIGHWAY 431 NORTH" "205 MARENGO STREET" "702 N MAIN ST" ...
##  $ City                        : chr  "DOTHAN" "BOAZ" "FLORENCE" "OPP" ...
##  $ State                       : chr  "AL" "AL" "AL" "AL" ...
##  $ ZIP.Code                    : int  36301 35957 35631 36467 36049 35235 35968 35007 35660 36360 ...
##  $ County.Name                 : chr  "HOUSTON" "MARSHALL" "LAUDERDALE" "COVINGTON" ...
##  $ Phone.Number                : num  3.35e+09 2.57e+09 2.57e+09 3.34e+09 3.34e+09 ...
##  $ READM_30_AMI_score          : num  0.409 0.2 0.826 NA NA ...
##  $ READM_30_COPD_score         : num  -0.8668 1.5743 0.1569 0.0782 0.6294 ...
##  $ READM_30_HF_score           : num  0.3704 0.0364 0.9047 0.5707 -0.765 ...
##  $ READM_30_HIP_KNEE_score     : num  -0.884 -1.968 -0.703 NA NA ...
##  $ READM_30_HOSP_WIDE_score    : num  0.215 0.821 0.215 -1.237 -0.148 ...
##  $ READM_30_PN_score           : num  -1.105 0.496 -0.549 -0.131 0.774 ...
##  $ READM_30_STK_score          : num  -0.125 -0.777 0.528 -0.125 NA ...
##  $ MORT_30_AMI_score           : num  1.25 -1.55 -2.1 NA NA ...
##  $ MORT_30_COPD_score          : num  -1.094 0.434 0.883 -1.094 -0.105 ...
##  $ MORT_30_HF_score            : num  -0.166 -2.286 -2.355 -1.534 -0.371 ...
##  $ MORT_30_PN_score            : num  0.428 -2.103 -0.862 -1.148 0.332 ...
##  $ MORT_30_STK_score           : num  -0.282 -0.342 -1.784 -1.003 NA ...
##  $ COMP_HIP_KNEE_score         : num  -1.355 0.0745 -1.355 NA NA ...
##  $ HAI_1_SIR_score             : num  -2.351 -1.023 0.389 NA NA ...
##  $ HAI_2_SIR_score             : num  -2.088 0.05 -0.357 1.054 NA ...
##  $ HAI_3_SIR_score             : num  -1.135 0.723 0.818 NA NA ...
##  $ HAI_6_SIR_score             : num  0.0566 0.7984 0.5887 1.5849 0.4489 ...
##  $ PSI_90_SAFETY_score         : num  1.2108 0.2304 -0.1156 0.5764 -0.0579 ...
##  $ H_CLEAN_LINEAR_SCORE        : num  -0.853 -1.112 -1.112 0.442 NA ...
##  $ H_COMP_1_LINEAR_SCORE       : num  -0.524 -0.129 -0.129 -0.129 NA ...
##  $ H_COMP_2_LINEAR_SCORE       : num  0.0412 0.8596 0.8596 1.678 NA ...
##  $ H_COMP_3_LINEAR_SCORE       : num  -1.2 -0.29 -0.517 0.392 NA ...
##  $ H_COMP_4_LINEAR_SCORE       : num  -0.606 0.167 -0.22 0.553 NA ...
##  $ H_COMP_5_LINEAR_SCORE       : num  -0.415 0.285 -0.182 0.751 NA ...
##  $ H_COMP_6_LINEAR_SCORE       : num  0.0276 0.3087 -1.0964 -0.2534 NA ...
##  $ H_COMP_7_LINEAR_SCORE       : num  0.165 -0.183 -0.532 0.165 NA ...
##  $ H_HSP_RATING_LINEAR_SCORE   : num  0.0842 0.3915 -1.1451 -0.5304 NA ...
##  $ H_QUIET_LINEAR_SCORE        : num  0.969 0.577 0.577 1.751 NA ...
##  $ H_RECMND_LINEAR_SCORE       : num  0.45 0.221 -0.923 -0.465 NA ...
##  $ OP_10_score                 : num  0.251 -0.423 -0.277 -1.498 0.524 ...
##  $ OP_11_score                 : num  0.389 -1.204 -0.245 -0.502 NA ...
##  $ OP_13_score                 : num  -1.2 -0.305 2.33 NA NA ...
##  $ OP_14_score                 : num  0.207 -0.649 -0.97 NA 1.171 ...
##  $ ED_1b_score                 : num  0.0892 0.3415 0.5938 0.5743 0.9527 ...
##  $ ED_2b_score                 : num  0.508 0.463 0.357 0.508 0.69 ...
##  $ OP_18b_score                : num  -1.266 0.616 0.235 0.568 1.068 ...
##  $ OP_20_score                 : num  -2.414 -0.049 1.009 -0.733 -0.049 ...
##  $ OP_21_score                 : num  -2.587 -0.38 -0.267 -2.078 0.243 ...
##  $ OP_5_score                  : num  NA -0.714 NA 0.248 NA ...
##  $ IMM_2_score                 : num  0.364 0.53 0.613 0.53 0.197 ...
##  $ IMM_3_OP_27_FAC_ADHPCT_score: num  -0.233 -0.099 0.169 -2.11 -2.781 ...
##  $ OP_22_score                 : num  -1.201 -0.108 0.438 0.438 0.438 ...
##  $ OP_29_score                 : num  NA 0.692 -0.102 -2.627 0.836 ...
##  $ OP_30_score                 : num  0.0711 0.5002 0.3285 -3.4479 0.7148 ...
##  $ OP_4_score                  : num  NA 0.546 NA -1.232 NA ...
##  $ PC_01_score                 : num  0.539 0.324 0.539 NA NA ...
##  $ STK_6_score                 : num  0.446 -0.915 0.198 -3.019 NA ...
##  $ STK_8_score                 : num  -0.57 0.618 -0.296 NA NA ...
##  $ VTE_1_score                 : num  0.334 0.178 0.412 0.334 0.489 ...
##  $ VTE_2_score                 : num  0.381 -0.45 -1.282 0.381 NA ...
##  $ VTE_3_score                 : num  -0.278 0.819 -0.887 NA NA ...
##  $ VTE_5_score                 : num  -0.2536 0.6352 -0.0759 NA NA ...
##  $ Hospital.overall.rating     : int  3 3 2 3 3 2 3 3 2 4 ...
## Replace NA with median values of the measure
names(master_data_without_na)
##  [1] "Provider.ID"                  "Hospital.Name"               
##  [3] "Address"                      "City"                        
##  [5] "State"                        "ZIP.Code"                    
##  [7] "County.Name"                  "Phone.Number"                
##  [9] "READM_30_AMI_score"           "READM_30_COPD_score"         
## [11] "READM_30_HF_score"            "READM_30_HIP_KNEE_score"     
## [13] "READM_30_HOSP_WIDE_score"     "READM_30_PN_score"           
## [15] "READM_30_STK_score"           "MORT_30_AMI_score"           
## [17] "MORT_30_COPD_score"           "MORT_30_HF_score"            
## [19] "MORT_30_PN_score"             "MORT_30_STK_score"           
## [21] "COMP_HIP_KNEE_score"          "HAI_1_SIR_score"             
## [23] "HAI_2_SIR_score"              "HAI_3_SIR_score"             
## [25] "HAI_6_SIR_score"              "PSI_90_SAFETY_score"         
## [27] "H_CLEAN_LINEAR_SCORE"         "H_COMP_1_LINEAR_SCORE"       
## [29] "H_COMP_2_LINEAR_SCORE"        "H_COMP_3_LINEAR_SCORE"       
## [31] "H_COMP_4_LINEAR_SCORE"        "H_COMP_5_LINEAR_SCORE"       
## [33] "H_COMP_6_LINEAR_SCORE"        "H_COMP_7_LINEAR_SCORE"       
## [35] "H_HSP_RATING_LINEAR_SCORE"    "H_QUIET_LINEAR_SCORE"        
## [37] "H_RECMND_LINEAR_SCORE"        "OP_10_score"                 
## [39] "OP_11_score"                  "OP_13_score"                 
## [41] "OP_14_score"                  "ED_1b_score"                 
## [43] "ED_2b_score"                  "OP_18b_score"                
## [45] "OP_20_score"                  "OP_21_score"                 
## [47] "OP_5_score"                   "IMM_2_score"                 
## [49] "IMM_3_OP_27_FAC_ADHPCT_score" "OP_22_score"                 
## [51] "OP_29_score"                  "OP_30_score"                 
## [53] "OP_4_score"                   "PC_01_score"                 
## [55] "STK_6_score"                  "STK_8_score"                 
## [57] "VTE_1_score"                  "VTE_2_score"                 
## [59] "VTE_3_score"                  "VTE_5_score"                 
## [61] "Hospital.overall.rating"
meas <- names(master_data_without_na[, 9:ncol(master_data_without_na)])
for (i in meas) {
  print(i)
  print(median(master_data_without_na[, i], na.rm = TRUE))
  med <- median(master_data_without_na[, i], na.rm = TRUE)
  master_data_without_na[i][is.na(master_data_without_na[i])] = med
}
## [1] "READM_30_AMI_score"
## [1] 0.09557352
## [1] "READM_30_COPD_score"
## [1] 0.07816308
## [1] "READM_30_HF_score"
## [1] 0.03644808
## [1] "READM_30_HIP_KNEE_score"
## [1] 0.01938441
## [1] "READM_30_HOSP_WIDE_score"
## [1] 0.09434903
## [1] "READM_30_PN_score"
## [1] 0.07794659
## [1] "READM_30_STK_score"
## [1] 0.0618616
## [1] "MORT_30_AMI_score"
## [1] 0.05139874
## [1] "MORT_30_COPD_score"
## [1] 0.07443538
## [1] "MORT_30_HF_score"
## [1] 0.03968628
## [1] "MORT_30_PN_score"
## [1] 0.04560634
## [1] "MORT_30_STK_score"
## [1] 0.0785529
## [1] "COMP_HIP_KNEE_score"
## [1] 0.07446038
## [1] "HAI_1_SIR_score"
## [1] 0.1494836
## [1] "HAI_2_SIR_score"
## [1] 0.1270887
## [1] "HAI_3_SIR_score"
## [1] 0.1595961
## [1] "HAI_6_SIR_score"
## [1] 0.02362961
## [1] "PSI_90_SAFETY_score"
## [1] 0.1150839
## [1] "H_CLEAN_LINEAR_SCORE"
## [1] -0.07594687
## [1] "H_COMP_1_LINEAR_SCORE"
## [1] 0.2652014
## [1] "H_COMP_2_LINEAR_SCORE"
## [1] 0.04117737
## [1] "H_COMP_3_LINEAR_SCORE"
## [1] -0.06257106
## [1] "H_COMP_4_LINEAR_SCORE"
## [1] 0.1667196
## [1] "H_COMP_5_LINEAR_SCORE"
## [1] 0.05126318
## [1] "H_COMP_6_LINEAR_SCORE"
## [1] 0.02763704
## [1] "H_COMP_7_LINEAR_SCORE"
## [1] 0.1648826
## [1] "H_HSP_RATING_LINEAR_SCORE"
## [1] 0.08418745
## [1] "H_QUIET_LINEAR_SCORE"
## [1] -0.009760763
## [1] "H_RECMND_LINEAR_SCORE"
## [1] -0.007499389
## [1] "OP_10_score"
## [1] 0.3191332
## [1] "OP_11_score"
## [1] 0.3886441
## [1] "OP_13_score"
## [1] 0.0428105
## [1] "OP_14_score"
## [1] 0.1004377
## [1] "ED_1b_score"
## [1] 0.1571615
## [1] "ED_2b_score"
## [1] 0.2048344
## [1] "OP_18b_score"
## [1] 0.04420063
## [1] "OP_20_score"
## [1] 0.1999376
## [1] "OP_21_score"
## [1] 0.07301241
## [1] "OP_5_score"
## [1] 0.2479597
## [1] "IMM_2_score"
## [1] 0.363809
## [1] "IMM_3_OP_27_FAC_ADHPCT_score"
## [1] 0.3032114
## [1] "OP_22_score"
## [1] 0.4381978
## [1] "OP_29_score"
## [1] 0.3673624
## [1] "OP_30_score"
## [1] 0.4143775
## [1] "OP_4_score"
## [1] 0.3679448
## [1] "PC_01_score"
## [1] 0.3239793
## [1] "STK_6_score"
## [1] 0.3221672
## [1] "STK_8_score"
## [1] 0.3440135
## [1] "VTE_1_score"
## [1] 0.3337948
## [1] "VTE_2_score"
## [1] 0.3811109
## [1] "VTE_3_score"
## [1] 0.3318061
## [1] "VTE_5_score"
## [1] 0.3685471
## [1] "Hospital.overall.rating"
## [1] 3
## check for NA values after replacing NA with Median
sapply(master_data_without_na, function(x) sum(is.na(x)))
##                  Provider.ID                Hospital.Name 
##                            0                            0 
##                      Address                         City 
##                            0                            0 
##                        State                     ZIP.Code 
##                            0                            0 
##                  County.Name                 Phone.Number 
##                            0                            0 
##           READM_30_AMI_score          READM_30_COPD_score 
##                            0                            0 
##            READM_30_HF_score      READM_30_HIP_KNEE_score 
##                            0                            0 
##     READM_30_HOSP_WIDE_score            READM_30_PN_score 
##                            0                            0 
##           READM_30_STK_score            MORT_30_AMI_score 
##                            0                            0 
##           MORT_30_COPD_score             MORT_30_HF_score 
##                            0                            0 
##             MORT_30_PN_score            MORT_30_STK_score 
##                            0                            0 
##          COMP_HIP_KNEE_score              HAI_1_SIR_score 
##                            0                            0 
##              HAI_2_SIR_score              HAI_3_SIR_score 
##                            0                            0 
##              HAI_6_SIR_score          PSI_90_SAFETY_score 
##                            0                            0 
##         H_CLEAN_LINEAR_SCORE        H_COMP_1_LINEAR_SCORE 
##                            0                            0 
##        H_COMP_2_LINEAR_SCORE        H_COMP_3_LINEAR_SCORE 
##                            0                            0 
##        H_COMP_4_LINEAR_SCORE        H_COMP_5_LINEAR_SCORE 
##                            0                            0 
##        H_COMP_6_LINEAR_SCORE        H_COMP_7_LINEAR_SCORE 
##                            0                            0 
##    H_HSP_RATING_LINEAR_SCORE         H_QUIET_LINEAR_SCORE 
##                            0                            0 
##        H_RECMND_LINEAR_SCORE                  OP_10_score 
##                            0                            0 
##                  OP_11_score                  OP_13_score 
##                            0                            0 
##                  OP_14_score                  ED_1b_score 
##                            0                            0 
##                  ED_2b_score                 OP_18b_score 
##                            0                            0 
##                  OP_20_score                  OP_21_score 
##                            0                            0 
##                   OP_5_score                  IMM_2_score 
##                            0                            0 
## IMM_3_OP_27_FAC_ADHPCT_score                  OP_22_score 
##                            0                            0 
##                  OP_29_score                  OP_30_score 
##                            0                            0 
##                   OP_4_score                  PC_01_score 
##                            0                            0 
##                  STK_6_score                  STK_8_score 
##                            0                            0 
##                  VTE_1_score                  VTE_2_score 
##                            0                            0 
##                  VTE_3_score                  VTE_5_score 
##                            0                            0 
##      Hospital.overall.rating 
##                            0
# No NA's found.

dim(master_data_without_na)
## [1] 3648   61
# [1] 3648   61
str(master_data_without_na)
## 'data.frame':    3648 obs. of  61 variables:
##  $ Provider.ID                 : int  10001 10005 10006 10007 10008 10011 10012 10016 10019 10021 ...
##  $ Hospital.Name               : chr  "SOUTHEAST ALABAMA MEDICAL CENTER" "MARSHALL MEDICAL CENTER SOUTH" "ELIZA COFFEE MEMORIAL HOSPITAL" "MIZELL MEMORIAL HOSPITAL" ...
##  $ Address                     : chr  "1108 ROSS CLARK CIRCLE" "2505 U S HIGHWAY 431 NORTH" "205 MARENGO STREET" "702 N MAIN ST" ...
##  $ City                        : chr  "DOTHAN" "BOAZ" "FLORENCE" "OPP" ...
##  $ State                       : chr  "AL" "AL" "AL" "AL" ...
##  $ ZIP.Code                    : int  36301 35957 35631 36467 36049 35235 35968 35007 35660 36360 ...
##  $ County.Name                 : chr  "HOUSTON" "MARSHALL" "LAUDERDALE" "COVINGTON" ...
##  $ Phone.Number                : num  3.35e+09 2.57e+09 2.57e+09 3.34e+09 3.34e+09 ...
##  $ READM_30_AMI_score          : num  0.4086 0.1999 0.8261 0.0956 0.0956 ...
##  $ READM_30_COPD_score         : num  -0.8668 1.5743 0.1569 0.0782 0.6294 ...
##  $ READM_30_HF_score           : num  0.3704 0.0364 0.9047 0.5707 -0.765 ...
##  $ READM_30_HIP_KNEE_score     : num  -0.884 -1.9681 -0.7033 0.0194 0.0194 ...
##  $ READM_30_HOSP_WIDE_score    : num  0.215 0.821 0.215 -1.237 -0.148 ...
##  $ READM_30_PN_score           : num  -1.105 0.496 -0.549 -0.131 0.774 ...
##  $ READM_30_STK_score          : num  -0.1245 -0.777 0.5279 -0.1245 0.0619 ...
##  $ MORT_30_AMI_score           : num  1.2493 -1.5457 -2.1047 0.0514 0.0514 ...
##  $ MORT_30_COPD_score          : num  -1.094 0.434 0.883 -1.094 -0.105 ...
##  $ MORT_30_HF_score            : num  -0.166 -2.286 -2.355 -1.534 -0.371 ...
##  $ MORT_30_PN_score            : num  0.428 -2.103 -0.862 -1.148 0.332 ...
##  $ MORT_30_STK_score           : num  -0.282 -0.3421 -1.7844 -1.0031 0.0786 ...
##  $ COMP_HIP_KNEE_score         : num  -1.355 0.0745 -1.355 0.0745 0.0745 ...
##  $ HAI_1_SIR_score             : num  -2.351 -1.023 0.389 0.149 0.149 ...
##  $ HAI_2_SIR_score             : num  -2.088 0.05 -0.357 1.054 0.127 ...
##  $ HAI_3_SIR_score             : num  -1.135 0.723 0.818 0.16 0.16 ...
##  $ HAI_6_SIR_score             : num  0.0566 0.7984 0.5887 1.5849 0.4489 ...
##  $ PSI_90_SAFETY_score         : num  1.2108 0.2304 -0.1156 0.5764 -0.0579 ...
##  $ H_CLEAN_LINEAR_SCORE        : num  -0.8527 -1.1116 -1.1116 0.4419 -0.0759 ...
##  $ H_COMP_1_LINEAR_SCORE       : num  -0.524 -0.129 -0.129 -0.129 0.265 ...
##  $ H_COMP_2_LINEAR_SCORE       : num  0.0412 0.8596 0.8596 1.678 0.0412 ...
##  $ H_COMP_3_LINEAR_SCORE       : num  -1.1999 -0.29 -0.5175 0.3923 -0.0626 ...
##  $ H_COMP_4_LINEAR_SCORE       : num  -0.606 0.167 -0.22 0.553 0.167 ...
##  $ H_COMP_5_LINEAR_SCORE       : num  -0.4152 0.2845 -0.182 0.751 0.0513 ...
##  $ H_COMP_6_LINEAR_SCORE       : num  0.0276 0.3087 -1.0964 -0.2534 0.0276 ...
##  $ H_COMP_7_LINEAR_SCORE       : num  0.165 -0.183 -0.532 0.165 0.165 ...
##  $ H_HSP_RATING_LINEAR_SCORE   : num  0.0842 0.3915 -1.1451 -0.5304 0.0842 ...
##  $ H_QUIET_LINEAR_SCORE        : num  0.96855 0.57722 0.57722 1.75119 -0.00976 ...
##  $ H_RECMND_LINEAR_SCORE       : num  0.45 0.2213 -0.9226 -0.465 -0.0075 ...
##  $ OP_10_score                 : num  0.251 -0.423 -0.277 -1.498 0.524 ...
##  $ OP_11_score                 : num  0.389 -1.204 -0.245 -0.502 0.389 ...
##  $ OP_13_score                 : num  -1.2 -0.3052 2.3296 0.0428 0.0428 ...
##  $ OP_14_score                 : num  0.207 -0.649 -0.97 0.1 1.171 ...
##  $ ED_1b_score                 : num  0.0892 0.3415 0.5938 0.5743 0.9527 ...
##  $ ED_2b_score                 : num  0.508 0.463 0.357 0.508 0.69 ...
##  $ OP_18b_score                : num  -1.266 0.616 0.235 0.568 1.068 ...
##  $ OP_20_score                 : num  -2.414 -0.049 1.009 -0.733 -0.049 ...
##  $ OP_21_score                 : num  -2.587 -0.38 -0.267 -2.078 0.243 ...
##  $ OP_5_score                  : num  0.248 -0.714 0.248 0.248 0.248 ...
##  $ IMM_2_score                 : num  0.364 0.53 0.613 0.53 0.197 ...
##  $ IMM_3_OP_27_FAC_ADHPCT_score: num  -0.233 -0.099 0.169 -2.11 -2.781 ...
##  $ OP_22_score                 : num  -1.201 -0.108 0.438 0.438 0.438 ...
##  $ OP_29_score                 : num  0.367 0.692 -0.102 -2.627 0.836 ...
##  $ OP_30_score                 : num  0.0711 0.5002 0.3285 -3.4479 0.7148 ...
##  $ OP_4_score                  : num  0.368 0.546 0.368 -1.232 0.368 ...
##  $ PC_01_score                 : num  0.539 0.324 0.539 0.324 0.324 ...
##  $ STK_6_score                 : num  0.446 -0.915 0.198 -3.019 0.322 ...
##  $ STK_8_score                 : num  -0.57 0.618 -0.296 0.344 0.344 ...
##  $ VTE_1_score                 : num  0.334 0.178 0.412 0.334 0.489 ...
##  $ VTE_2_score                 : num  0.381 -0.45 -1.282 0.381 0.381 ...
##  $ VTE_3_score                 : num  -0.278 0.819 -0.887 0.332 0.332 ...
##  $ VTE_5_score                 : num  -0.2536 0.6352 -0.0759 0.3685 0.3685 ...
##  $ Hospital.overall.rating     : int  3 3 2 3 3 2 3 3 2 4 ...
## Remove hospital information which is not required
master_data_without_na <- master_data_without_na[, -c(2:8)]
master_data_without_na$Hospital.overall.rating <- as.factor(master_data_without_na$Hospital.overall.rating)
cleaned_master_data <- master_data_without_na
dim(cleaned_master_data)
## [1] 3648   54
# [1] 3648   54

Perform EDA

library(Information)
# let us check the hospital_ratings dataset
summary(factor(hospital_ratings$Hospital.Type))
##      Acute Care Hospitals                 Childrens 
##                      3382                        99 
## Critical Access Hospitals 
##                      1337
# Acute Care Hospitals                 Childrens          Critical Access Hospitals
#             3382                        99                      1337

# Acute care hospitals are the highest in the dataset, followed by Critical Access Hospitals and Childrens hospitals.

# Let us verify the hospitals ratings for each type for hospitals.
table(hospital_ratings$Hospital.Type, hospital_ratings$Hospital.overall.rating)
##                            
##                                1    2    3    4    5
##   Acute Care Hospitals       117  659 1426  749  110
##   Childrens                    0    0    0    0    0
##   Critical Access Hospitals    0   25  346  215    1
#                              1    2    3    4    5
# Acute Care Hospitals       117  659 1426  749  110
# Childrens                    0    0    0    0    0
# Critical Access Hospitals    0   25  346  215    1

# Since the Childrens hospital has no ratings, we will filter these records from the dataset.
# we will remove the Critical Access Hospitals as well, as there are no ratings for 1 and very few for 5.

hospital_ratings <- filter(hospital_ratings, Hospital.Type == "Acute Care Hospitals")
hospital_ratings$Hospital.Type <- factor(as.character(hospital_ratings$Hospital.Type))
table(hospital_ratings$Hospital.Type, hospital_ratings$Hospital.overall.rating)
##                       
##                           1    2    3    4    5
##   Acute Care Hospitals  117  659 1426  749  110
#                               1    2    3    4    5
# Acute Care Hospitals        117  659 1426  749  110

# Let us check the Overall rating
unique(hospital_ratings$Hospital.overall.rating)
## [1]  3  2 NA  4  5  1
# [1]  3  2 NA  4  5  1

hospital_ratings$Hospital.overall.rating <- func_numeric(hospital_ratings$Hospital.overall.rating)
# Let's check the Ownership type for the hospitals.
table(hospital_ratings$Hospital.Ownership)
## 
##                        Government - Federal 
##                                          38 
## Government - Hospital District or Authority 
##                                         281 
##                          Government - Local 
##                                         183 
##                          Government - State 
##                                          54 
##                                   Physician 
##                                          63 
##                                 Proprietary 
##                                         723 
##                                      Tribal 
##                                           4 
##               Voluntary non-profit - Church 
##                                         284 
##                Voluntary non-profit - Other 
##                                         369 
##              Voluntary non-profit - Private 
##                                        1383
# Government - Federal        Government - Hospital District or Authority        Government - Local
# 38                                         281                                         183
# Government - State                      Physician                                 Proprietary
# 54                                          63                                         723
# Tribal               Voluntary non-profit - Church                Voluntary non-profit - Other
# 4                                         284                                         369
# Voluntary non-profit - Private
# 1383

# We see the Private hospitals have the data regarding the ratings in the dataset.

# Let us remove the NA's values-
hospital_ratings <- hospital_ratings[!is.na(hospital_ratings$Hospital.overall.rating),]
dim(hospital_ratings)
## [1] 3061   28
# [1] 3061 28

Univariate analysis - Segmented:

# Let us Segment across different groups categorical variables and compare their average overall ratings

avg_by_state <- hospital_ratings %>%
  group_by(State) %>%
  summarise(avg_rating = mean(Hospital.overall.rating, na.rm = T), provider_count = n()) %>%
  arrange(desc(avg_rating))
avg_by_state
## # A tibble: 53 x 3
##    State avg_rating provider_count
##    <chr>      <dbl>          <int>
##  1 SD          4.2              15
##  2 WI          3.69             65
##  3 DE          3.67              6
##  4 ID          3.67             12
##  5 IN          3.59             80
##  6 MT          3.58             12
##  7 NH          3.54             13
##  8 KS          3.52             44
##  9 MN          3.52             48
## 10 CO          3.5              44
## # … with 43 more rows
head(avg_by_state, 10)
## # A tibble: 10 x 3
##    State avg_rating provider_count
##    <chr>      <dbl>          <int>
##  1 SD          4.2              15
##  2 WI          3.69             65
##  3 DE          3.67              6
##  4 ID          3.67             12
##  5 IN          3.59             80
##  6 MT          3.58             12
##  7 NH          3.54             13
##  8 KS          3.52             44
##  9 MN          3.52             48
## 10 CO          3.5              44
# A tibble: 53 x 3
#   State     avg_rating    provider_count
#   <chr>       <dbl>          <int>
#    SD          4.2              15
#    WI          3.69             65
#    DE          3.67              6
#    ID          3.67             12
#    IN          3.59             80
#    MT          3.58             12
#    NH          3.54             13
#    KS          3.52             44
#    MN          3.52             48
#    CO          3.5              44

# We see that South Dakota(SD) has the highest average of 4.2 but the frequency is not the highest.
# we see that Indiana has an average of 3.59 and has the highest frequency.
# We see that Wisconsin has an average of 3.69 and a good count of providers.
graph_by_prov_state <- head(avg_by_state, 10) %>%
  ggplot(aes(x = State, y = avg_rating, fill = State,
             label = paste("(", round(avg_rating, 2), ",", provider_count, ")"), vjust = -2)) +
  geom_bar(stat = "identity") +
  geom_text(size = 2, vjust = -1) +
  theme_classic() +
  xlab("Hospitals by State") +
  ylab("Average rating") +
  ggtitle("Average Ratings by State")

graph_by_prov_state

avg_by_hosp_ownership <- hospital_ratings %>%
  group_by(Hospital.Ownership) %>%
  summarise(avg_rating = mean(Hospital.overall.rating, na.rm = T), hospital_count = n()) %>%
  arrange(desc(avg_rating))
avg_by_hosp_ownership
## # A tibble: 10 x 3
##    Hospital.Ownership                          avg_rating hospital_count
##    <chr>                                            <dbl>          <int>
##  1 Physician                                         4.10             31
##  2 Voluntary non-profit - Church                     3.15            275
##  3 Voluntary non-profit - Other                      3.11            348
##  4 Voluntary non-profit - Private                    3.07           1284
##  5 Government - Hospital District or Authority       2.96            261
##  6 Government - Federal                              2.93             15
##  7 Proprietary                                       2.91            633
##  8 Government - Local                                2.79            168
##  9 Government - State                                2.64             44
## 10 Tribal                                            2.5               2
# A tibble: 10 x 3
# Hospital.Ownership                              avg_rating hospital_count
# <chr>                                              <dbl>    <int>
# 1 Physician                                         4.10    31
# 2 Voluntary non-profit - Church                     3.15   275
# 3 Voluntary non-profit - Other                      3.11   348
# 4 Voluntary non-profit - Private                    3.07  1284
# 5 Government - Hospital District or Authority       2.96   261
# 6 Government - Federal                              2.93    15
# 7 Proprietary                                       2.91   633
# 8 Government - Local                                2.79   168
# 9 Government - State                                2.64    44
# 10 Tribal                                           2.5      2


graph_by_hosp_owner <- avg_by_hosp_ownership %>%
  ggplot(aes(x = Hospital.Ownership, y = avg_rating, fill = Hospital.Ownership,
             label = paste("(", round(avg_rating, 2), ",", hospital_count, ")"), vjust = -2)) +
  geom_bar(stat = "identity") +
  geom_text(size = 2, vjust = -1) +
  theme_classic() +
  xlab("Hospitals by Onwership") +
  ylab("Average rating") +
  ggtitle("Average Ratings by Onwership")

graph_by_hosp_owner

# we see good average ratings for "Physician" owned hospitals and voluntary non-profit owned hospitals
# Comparitively low ratings for tribal, Government -local owned hospitals.
library(cowplot)
## 
## ********************************************************
## Note: As of version 1.0.0, cowplot does not change the
##   default ggplot2 theme anymore. To recover the previous
##   behavior, execute:
##   theme_set(theme_cowplot())
## ********************************************************
## 
## Attaching package: 'cowplot'
## The following object is masked from 'package:ggthemes':
## 
##     theme_map
grid_plot <- plot_grid(graph_by_prov_state, graph_by_hosp_owner)
grid_plot

# Average of Readmission Ratings
avg_by_readmission <- hospital_ratings %>%
  group_by(Readmission.national.comparison) %>%
  summarise(avg_rating = mean(Hospital.overall.rating, na.rm = T), hospital_count = n()) %>%
  arrange(desc(avg_rating))
avg_by_readmission
## # A tibble: 4 x 3
##   Readmission.national.comparison avg_rating hospital_count
##   <chr>                                <dbl>          <int>
## 1 <NA>                                  3.92            124
## 2 Above the National average            3.57            791
## 3 Same as the National average          3.03           1299
## 4 Below the National average            2.38            847
# A tibble: 4 x 3
# Readmission.national.comparison       avg_rating hospital_count
# <chr>                                   <dbl>          <int>
# 1 NA                                    3.92            124
# 2 Above the National average            3.57            791
# 3 Same as the National average          3.03           1299
# 4 Below the National average            2.38            847

# Here we see that the average ratings of hospitals which have above the national average for readmissions is about 3.57 and around 811 hospitals rank here
# A considerable number of hospitals have average same as national average and their average rating is around 3.12
# Those which are below the national average have an average rating around 2.38.
# Above and Below national average hospitals are similar in number with respect to the readmissions count.

graph_by_readmission <- avg_by_readmission %>%
  ggplot(aes(x = Readmission.national.comparison, y = avg_rating, fill = Readmission.national.comparison,
             label = paste("(", round(avg_rating, 2), ",", hospital_count, ")"), vjust = -2)) +
  geom_bar(stat = "identity") +
  geom_text(size = 3, vjust = -0.5) +
  theme_classic() +
  xlab("Hospitals by National Readmission Comparison ") +
  ylab("Average rating") +
  ggtitle("Average Ratings by Readmissions")

graph_by_readmission

readmission_gp <- round(avg_by_readmission$avg_rating[2] - avg_by_readmission$avg_rating[4], 2)

# Average Mortality ratings
avg_by_mortality <- hospital_ratings %>%
  group_by(Mortality.national.comparison) %>%
  summarise(avg_rating = mean(Hospital.overall.rating, na.rm = T), hospital_count = n()) %>%
  arrange(desc(avg_rating))
avg_by_mortality
## # A tibble: 4 x 3
##   Mortality.national.comparison avg_rating hospital_count
##   <chr>                              <dbl>          <int>
## 1 <NA>                                3.63            194
## 2 Above the National average          3.29            400
## 3 Same as the National average        3.01           2124
## 4 Below the National average          2.48            343
# A tibble: 4 x 3
# Mortality.national.comparison     avg_rating hospital_count
# <chr>                                <dbl>          <int>
# 1 NA                                  3.63            194
# 2 Above the National average          3.29            400
# 3 Same as the National average        3.01           2124
# 4 Below the National average          2.48            343

# Excluding the NA's, around 400 hospitals have mortality rate above the national average
# A considerable number of hospitals (2124) have mortality rate same as the National average
# Few hospitals (343) have the mortality rate below the National average.

graph_by_mortality <- avg_by_mortality %>%
  ggplot(aes(x = Mortality.national.comparison, y = avg_rating, fill = Mortality.national.comparison,
             label = paste("(", round(avg_rating, 2), ",", hospital_count, ")"), vjust = -2)) +
  geom_bar(stat = "identity") +
  geom_text(size = 3, vjust = -0.5) +
  theme_classic() +
  xlab("Hospitals by National Morality Comparison") +
  ylab("Average rating") +
  ggtitle("Average Ratings by Mortality")

graph_by_mortality

mortality_gp <- round(avg_by_mortality$avg_rating[2] - avg_by_mortality$avg_rating[4], 2)

# Average safety ratings
avg_by_safety <- hospital_ratings %>%
  group_by(Safety.of.care.national.comparison) %>%
  summarise(avg_rating = mean(Hospital.overall.rating, na.rm = T), hospital_count = n()) %>%
  arrange(desc(avg_rating))
avg_by_safety
## # A tibble: 4 x 3
##   Safety.of.care.national.comparison avg_rating hospital_count
##   <chr>                                   <dbl>          <int>
## 1 Above the National average               3.44            804
## 2 <NA>                                     3.12            205
## 3 Same as the National average             3.09           1379
## 4 Below the National average               2.36            673
# # A tibble: 4 x 3
# Safety.of.care.national.comparison    avg_rating hospital_count
# <chr>                                     <dbl>   <int>
# 1 Above the National average               3.44   804
# 2 NA                                       3.12   205
# 3 Same as the National average             3.09  1379
# 4 Below the National average               2.36   673

# Here we see that the average ratings of hospitals which have above the national average for safety of care is about 3.44 and around 804 hospitals rank here
# A considerable number of hospitals have average same as national average and their average rating is around 3.09
# Those which are below the national average have an average rating around 2.36.

graph_by_safety <- avg_by_safety %>%
  ggplot(aes(x = Safety.of.care.national.comparison, y = avg_rating, fill = Safety.of.care.national.comparison,
             label = paste("(", round(avg_rating, 2), ",", hospital_count, ")"), vjust = -2)) +
  geom_bar(stat = "identity") +
  geom_text(size = 3, vjust = -0.5) +
  theme_classic() +
  xlab("Hospitals by National Safety of care Comparison") +
  ylab("Average rating") +
  ggtitle("Average Ratings by Safety")

graph_by_safety

safety_gp <- round(avg_by_safety$avg_rating[1] - avg_by_safety$avg_rating[4], 2)

# Average experience ratings

avg_by_experience <- hospital_ratings %>%
  group_by(Patient.experience.national.comparison) %>%
  summarise(avg_rating = mean(Hospital.overall.rating, na.rm = T), hospital_count = n()) %>%
  arrange(desc(avg_rating))
avg_by_experience
## # A tibble: 4 x 3
##   Patient.experience.national.comparison avg_rating hospital_count
##   <chr>                                       <dbl>          <int>
## 1 Above the National average                   3.69            887
## 2 Same as the National average                 3.11            996
## 3 <NA>                                         2.86             99
## 4 Below the National average                   2.42           1079
# # A tibble: 4 x 3
# Patient.experience.national.comparison    avg_rating hospital_count
# <chr>                                         <dbl>   <int>
# 1 Above the National average                   3.69   887
# 2 Same as the National average                 3.11   996
# 3 NA                                           2.86    99
# 4 Below the National average                   2.42  1079

graph_by_experience <- avg_by_experience %>%
  ggplot(aes(x = Patient.experience.national.comparison, y = avg_rating, fill = Patient.experience.national.comparison,
             label = paste("(", round(avg_rating, 2), ",", hospital_count, ")"), vjust = -2)) +
  geom_bar(stat = "identity") +
  geom_text(size = 3, vjust = -0.5) +
  theme_classic() +
  xlab("Hospitals by National Patient Experience Comparison") +
  ylab("Average rating") +
  ggtitle("Average Ratings by Experience")

graph_by_experience

experience_gp <- round(avg_by_experience$avg_rating[1] - avg_by_experience$avg_rating[4], 2)
# Average medical ratings
avg_by_medical <- hospital_ratings %>%
  group_by(Efficient.use.of.medical.imaging.national.comparison) %>%
  summarise(avg_rating = mean(Hospital.overall.rating, na.rm = T), hospital_count = n()) %>%
  arrange(desc(avg_rating))
avg_by_medical
## # A tibble: 4 x 3
##   Efficient.use.of.medical.imaging.national.comp… avg_rating hospital_count
##   <chr>                                                <dbl>          <int>
## 1 <NA>                                                  3.09            556
## 2 Same as the National average                          3.04           1806
## 3 Above the National average                            3.03            359
## 4 Below the National average                            2.86            340
# # A tibble: 4 x 3
# Efficient.use.of.medical.imaging.national.comparison    avg_rating hospital_count
# <chr>                                                       <dbl>   <int>
# 1 NA                                                         3.09   556
# 2 Same as the National average                               3.04  1806
# 3 Above the National average                                 3.03   359
# 4 Below the National average                                 2.86   340

# there's not much difference between the average ratings of above and same as
# national average hospitals by medical group variables

graph_by_medical <- avg_by_medical %>%
  ggplot(aes(x = Efficient.use.of.medical.imaging.national.comparison, y = avg_rating, fill = Efficient.use.of.medical.imaging.national.comparison,
             label = paste("(", round(avg_rating, 2), ",", hospital_count, ")"), vjust = -2)) +
  geom_bar(stat = "identity") +
  geom_text(size = 2, vjust = -0.5) +
  theme_classic() +
  xlab("Hospitals by National Use of Medical Imaging Comparison") +
  ylab("Average rating") +
  ggtitle("Average Ratings by Medical")

graph_by_medical

medical_gp <- round(avg_by_medical$avg_rating[3] - avg_by_medical$avg_rating[4], 2)

# Average timeliness ratings
avg_by_timeliness <- hospital_ratings %>%
  group_by(Timeliness.of.care.national.comparison) %>%
  summarise(avg_rating = mean(Hospital.overall.rating, na.rm = T), hospital_count = n()) %>%
  arrange(desc(avg_rating))
avg_by_timeliness
## # A tibble: 4 x 3
##   Timeliness.of.care.national.comparison avg_rating hospital_count
##   <chr>                                       <dbl>          <int>
## 1 <NA>                                         3.62            151
## 2 Above the National average                   3.22            826
## 3 Same as the National average                 3.12           1185
## 4 Below the National average                   2.62            899
# # A tibble: 4 x 3
# Timeliness.of.care.national.comparison    avg_rating hospital_count
# <chr>                                         <dbl>   <int>
# 1 NA                                           3.62   151
# 2 Above the National average                   3.22   826
# 3 Same as the National average                 3.12  1185
# 4 Below the National average                   2.62   899

# timeliness has a significant effect on the average rating (from 2.62 to 3.22)

graph_by_timeliness <- avg_by_timeliness %>%
  ggplot(aes(x = Timeliness.of.care.national.comparison, y = avg_rating, fill = Timeliness.of.care.national.comparison,
             label = paste("(", round(avg_rating, 2), ",", hospital_count, ")"), vjust = -2)) +
  geom_bar(stat = "identity") +
  geom_text(size = 3, vjust = -0.5) +
  theme_classic() +
  xlab("Hospitals by National Timeliness of care Comparison") +
  ylab("Average rating") +
  ggtitle("Average Ratings by Timeliness")

graph_by_timeliness

timeliness_gp <- round(avg_by_timeliness$avg_rating[2] - avg_by_timeliness$avg_rating[4], 2)

# Average effectiveness ratings

avg_by_effectiveness <- hospital_ratings %>%
  group_by(Effectiveness.of.care.national.comparison) %>%
  summarise(avg_rating = mean(Hospital.overall.rating, na.rm = T), hospital_count = n()) %>%
  arrange(desc(avg_rating))
avg_by_effectiveness
## # A tibble: 3 x 3
##   Effectiveness.of.care.national.comparison avg_rating hospital_count
##   <chr>                                          <dbl>          <int>
## 1 Above the National average                      3.08            991
## 2 Same as the National average                    3.07           1665
## 3 Below the National average                      2.72            405
# # A tibble: 4 x 3
# Effectiveness.of.care.national.comparison     avg_rating hospital_count
# <chr>                                              <dbl> <int>
# 1 Above the National average                      3.08   991
# 2 Same as the National average                    3.07  1665
# 3 Below the National average                      2.72   405

graph_by_effectiveness <- avg_by_effectiveness %>%
  ggplot(aes(x = Effectiveness.of.care.national.comparison, y = avg_rating, fill = Effectiveness.of.care.national.comparison,
             label = paste("(", round(avg_rating, 2), ",", hospital_count, ")"), vjust = -2)) +
  geom_bar(stat = "identity") +
  geom_text(size = 3, vjust = -0.5) +
  theme_classic() +
  xlab("Hospitals by National Effectiveness of care Comparison") +
  ylab("Average rating") +
  ggtitle("Average Ratings by Effectiveness")

graph_by_effectiveness

effectiveness_gp <- round(avg_by_effectiveness$avg_rating[1] - avg_by_effectiveness$avg_rating[3], 2)

# Average Star ratings by each group and its impact over the ratings
group_impact <- data.frame(readmission = readmission_gp, mortality = mortality_gp, safety = safety_gp, experience = experience_gp,
                           medical = medical_gp, timeliness = timeliness_gp, effectiveness = effectiveness_gp)

group_impacts_in_order <- t(group_impact[order(group_impact, decreasing = T)])
group_impacts_in_order
##               [,1]
## experience    1.27
## readmission   1.19
## safety        1.08
## mortality     0.81
## timeliness    0.60
## effectiveness 0.36
## medical       0.17
# [,1]
# experience    1.27
# readmission   1.19
# safety        1.08
# mortality     0.81
# timeliness    0.60
# effectiveness 0.36
# medical       0.17

# As per the cms measures the top 4 experience, readmission, safety and mortality have a 22% of weightage
# and the last 3 groups timeliness, effectiveness, medical have 4% of weightage

grid_plot1 <- plot_grid(graph_by_readmission, graph_by_mortality, graph_by_safety, graph_by_experience, graph_by_medical, graph_by_timeliness, graph_by_effectiveness)
grid_plot1

Bivariate analysis

# correlation of readmission
readmission <- read_master
str(readmission)
## 'data.frame':    4818 obs. of  16 variables:
##  $ Provider.ID             : int  10001 10005 10006 10007 10008 10011 10012 10016 10018 10019 ...
##  $ Hospital.Name           : chr  "SOUTHEAST ALABAMA MEDICAL CENTER" "MARSHALL MEDICAL CENTER SOUTH" "ELIZA COFFEE MEMORIAL HOSPITAL" "MIZELL MEMORIAL HOSPITAL" ...
##  $ Address                 : chr  "1108 ROSS CLARK CIRCLE" "2505 U S HIGHWAY 431 NORTH" "205 MARENGO STREET" "702 N MAIN ST" ...
##  $ City                    : chr  "DOTHAN" "BOAZ" "FLORENCE" "OPP" ...
##  $ State                   : chr  "AL" "AL" "AL" "AL" ...
##  $ ZIP.Code                : int  36301 35957 35631 36467 36049 35235 35968 35007 35233 35660 ...
##  $ County.Name             : chr  "HOUSTON" "MARSHALL" "LAUDERDALE" "COVINGTON" ...
##  $ Phone.Number            : num  3.35e+09 2.57e+09 2.57e+09 3.34e+09 3.34e+09 ...
##  $ READM_30_AMI_score      : num  0.409 0.2 0.826 NA NA ...
##  $ READM_30_CABG_score     : num  -0.615 NA -0.704 NA NA ...
##  $ READM_30_COPD_score     : num  -0.8668 1.5743 0.1569 0.0782 0.6294 ...
##  $ READM_30_HF_score       : num  0.3704 0.0364 0.9047 0.5707 -0.765 ...
##  $ READM_30_HIP_KNEE_score : num  -0.884 -1.968 -0.703 NA NA ...
##  $ READM_30_HOSP_WIDE_score: num  0.215 0.821 0.215 -1.237 -0.148 ...
##  $ READM_30_PN_score       : num  -1.105 0.496 -0.549 -0.131 0.774 ...
##  $ READM_30_STK_score      : num  -0.125 -0.777 0.528 -0.125 NA ...
correlation_readmission <- round(cor(readmission[, -c(1:8)], use = "pairwise.complete.obs"), 2)
col1 <- colorRampPalette(c("#7F0000", "red", "#FF7F00", "yellow", "white", "cyan", "#007FFF", "blue", "#00007F"))
col2 <- colorRampPalette(c("#67001F", "#B2182B", "#D6604D", "#F4A582", "#FDDBC7", "#FFFFFF", "#D1E5F0", "#92C5DE", "#4393C3", "#2166AC", "#053061"))
col3 <- colorRampPalette(c("red", "white", "blue"))
col4 <- colorRampPalette(c("#7F0000", "red", "#FF7F00", "yellow", "#7FFF7F", "cyan", "#007FFF", "blue", "#00007F"))
corrplot(correlation_readmission, method = "shade", type = "full", col = col1(20), addCoef.col = "maroon")

write.csv(correlation_readmission, "correlation_readmission.csv")

# Visual Observations:
# The correlation measures for READM_30_HIP_KNEE_score is very low accross all the variables.
# The correlation measures for READM_30_CABG_score is very low accross all the variables.
# READM_30_HOSP_WIDE_score has very good correlation measures accross all the variables.

# Now let us check, how the measures have an impact on the ratings.
readmission <- readmission[, -c(2:8)]
readmission_rating <- merge(readmission, master_data_y, by = "Provider.ID")

readmission_group_summary <- readmission_rating[, -1] %>%
  group_by(Hospital.overall.rating) %>%
  summarise_all(funs(mean(., na.rm = T)))
## Warning: funs() is soft deprecated as of dplyr 0.8.0
## Please use a list of either functions or lambdas: 
## 
##   # Simple named list: 
##   list(mean = mean, median = median)
## 
##   # Auto named with `tibble::lst()`: 
##   tibble::lst(mean, median)
## 
##   # Using lambdas
##   list(~ mean(., trim = .2), ~ median(., na.rm = TRUE))
## This warning is displayed once per session.
readmission_group_summary
## # A tibble: 6 x 9
##   Hospital.overal… READM_30_AMI_sc… READM_30_CABG_s… READM_30_COPD_s…
##              <int>            <dbl>            <dbl>            <dbl>
## 1                1          -0.588           -0.579           -1.01  
## 2                2          -0.413           -0.214           -0.392 
## 3                3           0.0501          -0.0370           0.0135
## 4                4           0.362            0.313            0.346 
## 5                5           1.01             0.454            0.965 
## 6               NA          -0.698            0.228           -0.0357
## # … with 5 more variables: READM_30_HF_score <dbl>,
## #   READM_30_HIP_KNEE_score <dbl>, READM_30_HOSP_WIDE_score <dbl>,
## #   READM_30_PN_score <dbl>, READM_30_STK_score <dbl>
# # A tibble: 6 x 9
# Hospital.overall.rating READM_30_AMI_score READM_30_CABG_score READM_30_COPD_score READM_30_HF_score READM_30_HIP_KNEE_score READM_30_HOSP_WIDE_score READM_30_PN_score READM_30_STK_score
# <int>              <dbl>               <dbl>               <dbl>             <dbl>                   <dbl>                    <dbl>             <dbl>              <dbl>
# 1                 -0.588              -0.579              -1.01            -1.14                   -0.309                   -1.75              -1.24              -0.946
# 2                 -0.413              -0.214              -0.392           -0.480                  -0.283                   -0.787             -0.609             -0.323
# 3                  0.0501             -0.0370              0.0135          -0.00873                -0.0543                  -0.0208             0.0322             0.0372
# 4                  0.362               0.313               0.346            0.436                   0.202                    0.612              0.409              0.327
# 5                  1.01                0.454               0.965            1.26                    0.883                    1.66               0.850              0.663
# NA                -0.698               0.228              -0.0357          -0.0303                 -0.00712                  0.00494            0.123              0.155

# We notice that, the ratings increase as all scores of the measures for readmission increase.
# Hence, all the readmission measures have an important role in predicting the ratings.

# correlation of mortality
mortality <- mort_master
str(mortality)
## 'data.frame':    4818 obs. of  15 variables:
##  $ Provider.ID          : int  10001 10005 10006 10007 10008 10011 10012 10016 10018 10019 ...
##  $ Hospital.Name        : chr  "SOUTHEAST ALABAMA MEDICAL CENTER" "MARSHALL MEDICAL CENTER SOUTH" "ELIZA COFFEE MEMORIAL HOSPITAL" "MIZELL MEMORIAL HOSPITAL" ...
##  $ Address              : chr  "1108 ROSS CLARK CIRCLE" "2505 U S HIGHWAY 431 NORTH" "205 MARENGO STREET" "702 N MAIN ST" ...
##  $ City                 : chr  "DOTHAN" "BOAZ" "FLORENCE" "OPP" ...
##  $ State                : chr  "AL" "AL" "AL" "AL" ...
##  $ ZIP.Code             : int  36301 35957 35631 36467 36049 35235 35968 35007 35233 35660 ...
##  $ County.Name          : chr  "HOUSTON" "MARSHALL" "LAUDERDALE" "COVINGTON" ...
##  $ Phone.Number         : num  3.35e+09 2.57e+09 2.57e+09 3.34e+09 3.34e+09 ...
##  $ MORT_30_AMI_score    : num  1.25 -1.55 -2.1 NA NA ...
##  $ MORT_30_CABG_score   : num  -0.996 NA -0.881 NA NA ...
##  $ MORT_30_COPD_score   : num  -1.094 0.434 0.883 -1.094 -0.105 ...
##  $ MORT_30_HF_score     : num  -0.166 -2.286 -2.355 -1.534 -0.371 ...
##  $ MORT_30_PN_score     : num  0.428 -2.103 -0.862 -1.148 0.332 ...
##  $ MORT_30_STK_score    : num  -0.282 -0.342 -1.784 -1.003 NA ...
##  $ PSI_4_SURG_COMP_score: num  -1.71 -2.3 -3.33 NA NA ...
correlation_mortality <- round(cor(mortality[, -c(1:8)], use = "pairwise.complete.obs"), 2)
corrplot(correlation_mortality, method = "shade", type = "full", col = col1(20), addCoef.col = "maroon")

write.csv(correlation_mortality, "correlation_mortality.csv")
# The correlation values are too low compared to the correlation values for readmission.
# With low correlation values, we see HF, PN and STK scores have some significance.
# Probably these measures would have an impact in the ratings.

# Now let us check, how the measures have an impact on the ratings.
mortality <- mortality[, -c(2:8)]
mortality_rating <- merge(mortality, master_data_y, by = "Provider.ID")
mortality_group_summary <- mortality_rating[, -1] %>%
  group_by(Hospital.overall.rating) %>%
  summarise_all(funs(mean(., na.rm = T)))
mortality_group_summary
## # A tibble: 6 x 8
##   Hospital.overal… MORT_30_AMI_sco… MORT_30_CABG_sc… MORT_30_COPD_sc…
##              <int>            <dbl>            <dbl>            <dbl>
## 1                1         -0.436            -0.226           -0.411 
## 2                2         -0.230            -0.118           -0.199 
## 3                3          0.00607          -0.0151          -0.0153
## 4                4          0.235             0.133            0.180 
## 5                5          0.809             0.394            0.597 
## 6               NA         -0.234            -0.136            0.0583
## # … with 4 more variables: MORT_30_HF_score <dbl>, MORT_30_PN_score <dbl>,
## #   MORT_30_STK_score <dbl>, PSI_4_SURG_COMP_score <dbl>
# # A tibble: 6 x 8
# Hospital.overall.rating MORT_30_AMI_score MORT_30_CABG_score MORT_30_COPD_score MORT_30_HF_score MORT_30_PN_score MORT_30_STK_score PSI_4_SURG_COMP_score
# <int>             <dbl>              <dbl>              <dbl>            <dbl>            <dbl>             <dbl>                 <dbl>
#   1               -0.436              -0.226             -0.411            0.0892          -0.503            -0.554                -0.601
#   2               -0.230              -0.118             -0.199           -0.104           -0.339            -0.0885               -0.240
#   3                0.00607            -0.0151            -0.0153          -0.0783          -0.0513           -0.0146                0.0177
#   4                0.235               0.133              0.180            0.210            0.376             0.168                 0.290
#   5                0.809               0.394              0.597            0.753            0.899             0.395                 0.443
#   NA              -0.234              -0.136              0.0583          -0.251           -0.0476           -0.132                 1.40

# We Can see that the rating increases as each measure score increases
# but for HF score, it behaves differently.
# AMI, HF, ON have an effect on the ratings.
# correlation of safety
safety <- safe_master
str(safety)
## 'data.frame':    4818 obs. of  16 variables:
##  $ Provider.ID        : int  10001 10005 10006 10007 10008 10011 10012 10016 10018 10019 ...
##  $ Hospital.Name      : chr  "SOUTHEAST ALABAMA MEDICAL CENTER" "MARSHALL MEDICAL CENTER SOUTH" "ELIZA COFFEE MEMORIAL HOSPITAL" "MIZELL MEMORIAL HOSPITAL" ...
##  $ Address            : chr  "1108 ROSS CLARK CIRCLE" "2505 U S HIGHWAY 431 NORTH" "205 MARENGO STREET" "702 N MAIN ST" ...
##  $ City               : chr  "DOTHAN" "BOAZ" "FLORENCE" "OPP" ...
##  $ State              : chr  "AL" "AL" "AL" "AL" ...
##  $ ZIP.Code           : int  36301 35957 35631 36467 36049 35235 35968 35007 35233 35660 ...
##  $ County.Name        : chr  "HOUSTON" "MARSHALL" "LAUDERDALE" "COVINGTON" ...
##  $ Phone.Number       : num  3.35e+09 2.57e+09 2.57e+09 3.34e+09 3.34e+09 ...
##  $ COMP_HIP_KNEE_score: num  -1.355 0.0745 -1.355 NA NA ...
##  $ HAI_1_SIR_score    : num  -2.351 -1.023 0.389 NA NA ...
##  $ HAI_2_SIR_score    : num  -2.088 0.05 -0.357 1.054 NA ...
##  $ HAI_3_SIR_score    : num  -1.135 0.723 0.818 NA NA ...
##  $ HAI_4_SIR_score    : num  1.02 NA NA NA NA ...
##  $ HAI_5_SIR_score    : num  0.647 -0.457 -0.312 NA NA ...
##  $ HAI_6_SIR_score    : num  0.0566 0.7984 0.5887 1.5849 0.4489 ...
##  $ PSI_90_SAFETY_score: num  1.2108 0.2304 -0.1156 0.5764 -0.0579 ...
correlation_safety <- round(cor(safety[, -c(1:8)], use = "pairwise.complete.obs"), 2)
corrplot(correlation_safety, method = "shade", type = "full", col = col1(20), addCoef.col = "maroon")

write.csv(correlation_safety, "correlation_safety.csv")
# COMP_HIP_KNEE_score has a slight negative correlation between HAI_1,2,3 and slight +ve correlation for HAI_4,5,6 and PSI.
# HAI-1, 2 and 3 are correlated compared to the other measures, all are not correlated with HAI-5, HAI-6, PSI and COMP-HIP-KNEE score
# HAI-1 has correlation with HAI-5.

# Now let us check, how the measures have an impact on the ratings.
safety <- safety[, -(2:8)]
safety_rating <- merge(safety, master_data_y, by = "Provider.ID")
safety_group_summary <- safety_rating[, -1] %>%
  group_by(Hospital.overall.rating) %>%
  summarise_all(funs(mean(., na.rm = T)))
safety_group_summary
## # A tibble: 6 x 9
##   Hospital.overal… COMP_HIP_KNEE_s… HAI_1_SIR_score HAI_2_SIR_score
##              <int>            <dbl>           <dbl>           <dbl>
## 1                1          -0.204          -0.445          -0.526 
## 2                2          -0.149          -0.172          -0.109 
## 3                3          -0.0765          0.0489          0.0654
## 4                4           0.125           0.177           0.0745
## 5                5           0.846           0.232           0.120 
## 6               NA           0.153          -0.0970         -0.0262
## # … with 5 more variables: HAI_3_SIR_score <dbl>, HAI_4_SIR_score <dbl>,
## #   HAI_5_SIR_score <dbl>, HAI_6_SIR_score <dbl>,
## #   PSI_90_SAFETY_score <dbl>
# # A tibble: 6 x 9
# Hospital.overall.rating COMP_HIP_KNEE_score HAI_1_SIR_score HAI_2_SIR_score HAI_3_SIR_score HAI_4_SIR_score HAI_5_SIR_score HAI_6_SIR_score PSI_90_SAFETY_score
# <int>                        <dbl>           <dbl>           <dbl>           <dbl>           <dbl>           <dbl>           <dbl>               <dbl>
#   1                         -0.204          -0.445          -0.526          -0.173          -0.395         -0.341          -0.0257              -1.88
#   2                         -0.149          -0.172          -0.109          -0.0459          0.0362        -0.0710         -0.100               -0.531
#   3                         -0.0765          0.0489          0.0654          0.0119          0.0434         0.00232        -0.0240               0.0652
#   4                          0.125           0.177           0.0745          0.0613         -0.0488         0.152           0.00476              0.471
#   5                          0.846           0.232           0.120          -0.0285          0.166          0.280           0.510                0.942
#  NA                          0.153          -0.0970         -0.0262          0.0660          0.0439        -0.0714          0.403                0.0689

# As per the above summary, it looks like COMP_HIP_KNEE_score, PSI_90_SAFETY_score have a significant impact on the ratings.

# correlation of experience
experience <- expe_master
correlation_experience <- round(cor(experience[, -c(1:8)], use = "pairwise.complete.obs"), 2)
par(pin = c(5, 5))              ##  (width, height) in inches
par(omi = c(0, 0.5, 0.5, 0.5))        ## (bottom, left, top, right)  in inches
corrplot(correlation_experience, method = "shade", type = "full", col = col1(20), addCoef.col = "maroon", tl.cex = 0.7, tl.offset = 0.5, number.cex = 0.8, tl.pos = 't')

write.csv(correlation_experience, "correlation_experience.csv")
# we can visualize that all the variables are positively correlated with each other.
# This implies that the overall hospital experience, which is all about the hospitality and clear communication, helps improve the ratings.
# All the measures play a vital role in the ratings.

# Now let us check, how the measures have an impact on the ratings.
experience <- experience[, -c(2:8)]
experience_rating <- merge(experience, master_data_y, by = "Provider.ID")
experience_group_summary <- experience_rating[, -1] %>%
  group_by(Hospital.overall.rating) %>%
  summarise_all(funs(mean(., na.rm = T)))
experience_group_summary
## # A tibble: 6 x 12
##   Hospital.overal… H_CLEAN_LINEAR_… H_COMP_1_LINEAR… H_COMP_2_LINEAR…
##              <int>            <dbl>            <dbl>            <dbl>
## 1                1          -1.28            -1.57           -1.17   
## 2                2          -0.705           -0.790          -0.709  
## 3                3          -0.0223          -0.0303         -0.00778
## 4                4           0.530            0.602           0.504  
## 5                5           0.922            1.14            0.822  
## 6               NA           0.378            0.473           0.410  
## # … with 8 more variables: H_COMP_3_LINEAR_SCORE <dbl>,
## #   H_COMP_4_LINEAR_SCORE <dbl>, H_COMP_5_LINEAR_SCORE <dbl>,
## #   H_COMP_6_LINEAR_SCORE <dbl>, H_COMP_7_LINEAR_SCORE <dbl>,
## #   H_HSP_RATING_LINEAR_SCORE <dbl>, H_QUIET_LINEAR_SCORE <dbl>,
## #   H_RECMND_LINEAR_SCORE <dbl>
# # A tibble: 6 x 12
# Hospital.overall.rating H_CLEAN_LINEAR_~ H_COMP_1_LINEAR~ H_COMP_2_LINEAR~ H_COMP_3_LINEAR~ H_COMP_4_LINEAR~ H_COMP_5_LINEAR~ H_COMP_6_LINEAR~ H_COMP_7_LINEAR~ H_HSP_RATING_LI~ H_QUIET_LINEAR_~ H_RECMND_LINEAR~
#   <int>            <dbl>            <dbl>            <dbl>            <dbl>            <dbl>            <dbl>            <dbl>            <dbl>            <dbl>            <dbl>            <dbl>
#     1               -1.28            -1.57           -1.17            -1.64             -1.48            -1.31            -1.32            -1.37            -1.53            -1.09            -1.31
#     2               -0.705           -0.790          -0.709           -0.806            -0.767           -0.739           -0.661           -0.784           -0.790           -0.578           -0.737
#     3               -0.0223          -0.0303         -0.00778         -0.00465          -0.0252          -0.0574          -0.0351          -0.0777          -0.0649          -0.0224          -0.0874
#     4                0.530            0.602           0.504            0.566             0.577            0.577            0.524            0.620            0.617            0.364            0.600
#     5                0.922            1.14            0.822            1.06              1.05             1.02             0.883            1.25             1.38             0.958            1.37
#    NA                0.378            0.473           0.410            0.613             0.449            0.570            0.425            0.605            0.554            0.729            0.500

# This implies all the measures in experience are highly important measures.
# Correlation of medical
medical <- medi_master
correlation_medical <- round(cor(medical[, -c(1:8)], use = "pairwise.complete.obs"), 2)
corrplot(correlation_medical, method = "shade", type = "full", col = col1(20), addCoef.col = "maroon")

write.csv(correlation_medical, "correlation_medical.csv")
# Only OP-10 and OP_11 have some good correlation.
# Rest all the correlations are negligible.

# Now let us check, how the measures have an impact on the ratings.
medical <- medical[, -c(2:8)]
medical_rating <- merge(medical, master_data_y, by = "Provider.ID")
medical_group_summary <- medical_rating[, -1] %>%
  group_by(Hospital.overall.rating) %>%
  summarise_all(funs(mean(., na.rm = T)))
medical_group_summary
## # A tibble: 6 x 6
##   Hospital.overal… OP_10_score OP_11_score OP_13_score OP_14_score
##              <int>       <dbl>       <dbl>       <dbl>       <dbl>
## 1                1      0.0750      0.132      0.0318      -0.685 
## 2                2     -0.0888     -0.0955    -0.0360      -0.273 
## 3                3     -0.0114     -0.0134     0.0318       0.0235
## 4                4      0.133       0.110     -0.0156       0.100 
## 5                5      0.131       0.240     -0.135        0.317 
## 6               NA     -0.213      -0.272      0.00673      1.06  
## # … with 1 more variable: OP_8_score <dbl>
# # A tibble: 6 x 6
# Hospital.overall.rating OP_10_score OP_11_score OP_13_score OP_14_score OP_8_score
# <int>                       <dbl>       <dbl>       <dbl>       <dbl>      <dbl>
#   1                        0.0750      0.132      0.0318      -0.685     0.130
#   2                       -0.0888     -0.0955    -0.0360      -0.273     0.0312
#   3                       -0.0114     -0.0134     0.0318       0.0235   -0.0176
#   4                        0.133       0.110     -0.0156       0.100     0.00368
#   5                        0.131       0.240     -0.135        0.317     0.0970
#  NA                       -0.213      -0.272      0.00673      1.06     -0.612

# Only OP_14 seems significant, but the overall weight of medical group itself is quite less

# Correlation of timeliness
timeliness <- time_master
correlation_timeliness <- round(cor(timeliness[, -c(1:8)], use = "pairwise.complete.obs"), 2)
corrplot(correlation_timeliness, method = "shade", type = "full", col = col1(20), addCoef.col = "maroon")

write.csv(correlation_timeliness, "correlation_timeliness.csv")
# All ED scores have good correlation with OP_18b, OP_20, and OP_21.
# Even OP_18b, 20 and 21 have good correlations with each other.

# Now let us check, how the measures have an impact on the ratings.
timeliness <- timeliness[, -c(2:8)]
timeliness_rating <- merge(timeliness, master_data_y, by = "Provider.ID")
timeliness_group_summary <- timeliness_rating[, -1] %>%
  group_by(Hospital.overall.rating) %>%
  summarise_all(funs(mean(., na.rm = T)))
timeliness_group_summary
## # A tibble: 6 x 8
##   Hospital.overal… ED_1b_score ED_2b_score OP_18b_score OP_20_score
##              <int>       <dbl>       <dbl>        <dbl>       <dbl>
## 1                1      -1.40      -1.30        -0.982      -1.01  
## 2                2      -0.514     -0.508       -0.432      -0.266 
## 3                3       0.101      0.0991       0.0551      0.0390
## 4                4       0.242      0.206        0.0933      0.152 
## 5                5       0.301      0.174       -0.0454      0.125 
## 6               NA       0.393      0.499        0.747       0.288 
## # … with 3 more variables: OP_21_score <dbl>, OP_3b_score <dbl>,
## #   OP_5_score <dbl>
# # A tibble: 6 x 8
# Hospital.overall.rating ED_1b_score ED_2b_score OP_18b_score OP_20_score OP_21_score OP_3b_score OP_5_score
# <int>                       <dbl>       <dbl>        <dbl>       <dbl>       <dbl>       <dbl>      <dbl>
#   1                         -1.40      -1.30        -0.982      -1.01       -0.763      -0.403     -0.841
#   2                         -0.514     -0.508       -0.432      -0.266      -0.294      -0.137     -0.0914
#   3                          0.101      0.0991       0.0551      0.0390      0.0297     -0.0210    -0.0155
#   4                          0.242      0.206        0.0933      0.152       0.236       0.182      0.204
#   5                          0.301      0.174       -0.0454      0.125       0.263       0.542      0.341
#  NA                          0.393      0.499        0.747       0.288       0.160      -0.355     -0.181

# The above implies ED_1b and OP_21, OP_3b, OP_5 are the most important measures
# Since the overall weightage of the group is only 4%, the impact might be less.

# Correlation of effectiveness
effectiveness <- effe_master
correlation_effectiveness <- round(cor(effectiveness[, -c(1:8)], use = "pairwise.complete.obs"), 2)
par(pin = c(75, 75))              ##  (width, height) in inches
par(omi = c(0, 0.8, 0.8, 0.8))        ## (bottom, left, top, right)  in inches
corrplot(correlation_effectiveness, method = "shade", type = "full", col = col1(20), addCoef.col = "maroon", tl.cex = 0.8, tl.offset = 0.7, number.cex = 0.7,
         tl.pos = 'b')

write.csv(correlation_effectiveness, "correlation_effectiveness.csv")

# We can see very good correlations for STK_4, STK5,STK_6, STK_8, VTE_1, VTE_2 and VTE_6.
# CAC_3 and IMM_2, STK_6, STK_8, VTE_1 are positively correlated.

# Now let us check, how the measures have an impact on the ratings.
effectiveness <- effectiveness[, -c(2:8)]
effectiveness_rating <- merge(effectiveness, master_data_y, by = "Provider.ID")
effectiveness_group_summary <- effectiveness_rating[, -1] %>%
  group_by(Hospital.overall.rating) %>%
  summarise_all(funs(mean(., na.rm = T)))
effectiveness_group_summary
## # A tibble: 6 x 19
##   Hospital.overal… CAC_3_score IMM_2_score IMM_3_OP_27_FAC… OP_22_score
##              <int>       <dbl>       <dbl>            <dbl>       <dbl>
## 1                1      0.0933     -0.237          -0.286     -0.669   
## 2                2     -0.0145      0.0486         -0.217     -0.237   
## 3                3      0.215       0.0779          0.00515    0.000349
## 4                4     -0.0927      0.229           0.205      0.207   
## 5                5      0.397       0.311           0.227      0.401   
## 6               NA     -0.254      -0.980          -0.0751     0.268   
## # … with 14 more variables: OP_23_score <dbl>, OP_29_score <dbl>,
## #   OP_30_score <dbl>, OP_4_score <dbl>, PC_01_score <dbl>,
## #   STK_4_score <dbl>, STK_5_score <dbl>, STK_6_score <dbl>,
## #   STK_8_score <dbl>, VTE_1_score <dbl>, VTE_2_score <dbl>,
## #   VTE_3_score <dbl>, VTE_5_score <dbl>, VTE_6_score <dbl>
write.csv(effectiveness_group_summary, "effectiveness_rating_summary.csv")

# We see a mixed behaviour here, ratings increase as measures increase for few and viceversa.
# This implies that VTE (1, 2, 3, 5) measures are correlated to each other, they might play role in the ratings.
# Similar observations are there for STK measures

EDA Completed

Random Forest Modelling

library(caTools)
library(rpart)
library(randomForest)
## randomForest 4.6-14
## Type rfNews() to see new features/changes/bug fixes.
## 
## Attaching package: 'randomForest'
## The following object is masked from 'package:gridExtra':
## 
##     combine
## The following object is masked from 'package:ggplot2':
## 
##     margin
## The following object is masked from 'package:dplyr':
## 
##     combine
library(rpart.plot)
library(RColorBrewer)
library(rattle)
## Rattle: A free graphical interface for data science with R.
## Version 5.3.0 Copyright (c) 2006-2018 Togaware Pty Ltd.
## Type 'rattle()' to shake, rattle, and roll your data.
## 
## Attaching package: 'rattle'
## The following object is masked from 'package:randomForest':
## 
##     importance
library(caret)
## Loading required package: lattice
# We will use the cleaned master data as data set-
# cleaned_master_data

### split the train and test set
set.seed(123)

data = sample.split(cleaned_master_data, SplitRatio = 0.3)
train = subset(cleaned_master_data, data == FALSE)
test = subset(cleaned_master_data, data == TRUE)
dim(train)
## [1] 2570   54
# [1] 2570   54

dim(test)
## [1] 1078   54
# [1] 1078   54

str(train)
## 'data.frame':    2570 obs. of  54 variables:
##  $ Provider.ID                 : int  10005 10006 10007 10008 10012 10016 10019 10021 10022 10023 ...
##  $ READM_30_AMI_score          : num  0.1999 0.8261 0.0956 0.0956 0.8261 ...
##  $ READM_30_COPD_score         : num  1.5743 0.1569 0.0782 0.6294 0.6294 ...
##  $ READM_30_HF_score           : num  0.0364 0.9047 0.5707 -0.765 -0.9653 ...
##  $ READM_30_HIP_KNEE_score     : num  -1.9681 -0.7033 0.0194 0.0194 0.0194 ...
##  $ READM_30_HOSP_WIDE_score    : num  0.821 0.215 -1.237 -0.148 0.336 ...
##  $ READM_30_PN_score           : num  0.496 -0.549 -0.131 0.774 -1.593 ...
##  $ READM_30_STK_score          : num  -0.777 0.5279 -0.1245 0.0619 -0.2177 ...
##  $ MORT_30_AMI_score           : num  -1.5457 -2.1047 0.0514 0.0514 -2.1846 ...
##  $ MORT_30_COPD_score          : num  0.434 0.883 -1.094 -0.105 -1.004 ...
##  $ MORT_30_HF_score            : num  -2.286 -2.355 -1.534 -0.371 -0.234 ...
##  $ MORT_30_PN_score            : num  -2.103 -0.862 -1.148 0.332 -3.772 ...
##  $ MORT_30_STK_score           : num  -0.3421 -1.7844 -1.0031 0.0786 -0.5224 ...
##  $ COMP_HIP_KNEE_score         : num  0.0745 -1.355 0.0745 0.0745 0.4318 ...
##  $ HAI_1_SIR_score             : num  -1.023 0.389 0.149 0.149 0.149 ...
##  $ HAI_2_SIR_score             : num  0.05 -0.357 1.054 0.127 1.054 ...
##  $ HAI_3_SIR_score             : num  0.723 0.818 0.16 0.16 0.16 ...
##  $ HAI_6_SIR_score             : num  0.798 0.589 1.585 0.449 1.148 ...
##  $ PSI_90_SAFETY_score         : num  0.2304 -0.1156 0.5764 -0.0579 -0.0579 ...
##  $ H_CLEAN_LINEAR_SCORE        : num  -1.1116 -1.1116 0.4419 -0.0759 -0.3349 ...
##  $ H_COMP_1_LINEAR_SCORE       : num  -0.129 -0.129 -0.129 0.265 0.265 ...
##  $ H_COMP_2_LINEAR_SCORE       : num  0.8596 0.8596 1.678 0.0412 0.8596 ...
##  $ H_COMP_3_LINEAR_SCORE       : num  -0.29 -0.5175 0.3923 -0.0626 -0.0626 ...
##  $ H_COMP_4_LINEAR_SCORE       : num  0.167 -0.22 0.553 0.167 0.167 ...
##  $ H_COMP_5_LINEAR_SCORE       : num  0.2845 -0.182 0.751 0.0513 -0.4152 ...
##  $ H_COMP_6_LINEAR_SCORE       : num  0.3087 -1.0964 -0.2534 0.0276 0.3087 ...
##  $ H_COMP_7_LINEAR_SCORE       : num  -0.183 -0.532 0.165 0.165 -0.88 ...
##  $ H_HSP_RATING_LINEAR_SCORE   : num  0.3915 -1.1451 -0.5304 0.0842 0.0842 ...
##  $ H_QUIET_LINEAR_SCORE        : num  0.57722 0.57722 1.75119 -0.00976 0.57722 ...
##  $ H_RECMND_LINEAR_SCORE       : num  0.2213 -0.9226 -0.465 -0.0075 -0.6938 ...
##  $ OP_10_score                 : num  -0.423 -0.277 -1.498 0.524 0.28 ...
##  $ OP_11_score                 : num  -1.204 -0.245 -0.502 0.389 -1.306 ...
##  $ OP_13_score                 : num  -0.3052 2.3296 0.0428 0.0428 0.7885 ...
##  $ OP_14_score                 : num  -0.649 -0.97 0.1 1.171 0.1 ...
##  $ ED_1b_score                 : num  0.342 0.594 0.574 0.953 0.865 ...
##  $ ED_2b_score                 : num  0.463 0.357 0.508 0.69 0.751 ...
##  $ OP_18b_score                : num  0.616 0.235 0.568 1.068 0.544 ...
##  $ OP_20_score                 : num  -0.049 1.009 -0.733 -0.049 -0.485 ...
##  $ OP_21_score                 : num  -0.38 -0.267 -2.078 0.243 -0.323 ...
##  $ OP_5_score                  : num  -0.714 0.248 0.248 0.248 1.595 ...
##  $ IMM_2_score                 : num  0.53 0.613 0.53 0.197 0.613 ...
##  $ IMM_3_OP_27_FAC_ADHPCT_score: num  -0.099 0.169 -2.11 -2.781 0.37 ...
##  $ OP_22_score                 : num  -0.108 0.438 0.438 0.438 -0.108 ...
##  $ OP_29_score                 : num  0.692 -0.102 -2.627 0.836 0.981 ...
##  $ OP_30_score                 : num  0.5 0.329 -3.448 0.715 0.844 ...
##  $ OP_4_score                  : num  0.546 0.368 -1.232 0.368 0.724 ...
##  $ PC_01_score                 : num  0.324 0.539 0.324 0.324 -2.254 ...
##  $ STK_6_score                 : num  -0.9154 0.1984 -3.0191 0.3222 -0.0491 ...
##  $ STK_8_score                 : num  0.618 -0.296 0.344 0.344 0.618 ...
##  $ VTE_1_score                 : num  0.178 0.412 0.334 0.489 0.489 ...
##  $ VTE_2_score                 : num  -0.45 -1.282 0.381 0.381 0.215 ...
##  $ VTE_3_score                 : num  0.819 -0.887 0.332 0.332 0.21 ...
##  $ VTE_5_score                 : num  0.6352 -0.0759 0.3685 0.3685 0.6352 ...
##  $ Hospital.overall.rating     : Factor w/ 5 levels "1","2","3","4",..: 3 2 3 3 3 3 2 4 3 3 ...
# We will use mtry=20, we will use ntree = 500,1000 and 1500 as per the mentor's suggestions.
model_rf1 <- randomForest(Hospital.overall.rating ~ ., data = train, promiximity = FALSE, ntree = 500, mtry = 20, do.trace = TRUE, na.action = na.omit)
## ntree      OOB      1      2      3      4      5
##     1:  36.66% 60.00% 37.87% 29.20% 42.63% 67.74%
##     2:  36.65% 53.49% 41.90% 29.93% 40.90% 65.12%
##     3:  37.28% 52.46% 41.97% 30.13% 42.20% 69.81%
##     4:  37.34% 44.12% 43.95% 31.50% 40.25% 60.00%
##     5:  37.06% 44.59% 42.92% 30.63% 41.23% 62.50%
##     6:  35.09% 44.87% 42.95% 28.43% 38.83% 52.24%
##     7:  35.09% 45.12% 43.45% 26.82% 41.11% 56.72%
##     8:  34.13% 48.19% 40.34% 26.68% 39.82% 52.86%
##     9:  33.04% 53.01% 40.38% 25.04% 37.86% 56.34%
##    10:  31.47% 44.05% 39.32% 24.14% 35.93% 52.11%
##    11:  31.51% 44.71% 38.30% 23.07% 37.91% 58.90%
##    12:  31.04% 51.76% 37.71% 23.17% 35.62% 57.53%
##    13:  29.46% 47.06% 37.92% 21.08% 33.98% 57.53%
##    14:  29.22% 48.24% 36.65% 21.08% 34.13% 54.79%
##    15:  28.93% 48.24% 34.75% 20.65% 34.58% 60.27%
##    16:  27.89% 49.41% 36.02% 19.43% 32.19% 57.53%
##    17:  27.95% 48.24% 37.92% 19.02% 32.34% 54.05%
##    18:  27.00% 50.59% 36.44% 17.98% 31.59% 52.70%
##    19:  27.39% 55.29% 35.59% 18.53% 32.19% 51.35%
##    20:  26.81% 52.94% 36.65% 17.51% 31.15% 54.05%
##    21:  25.80% 55.29% 34.53% 16.64% 30.40% 51.35%
##    22:  25.68% 54.12% 35.59% 16.01% 30.55% 51.35%
##    23:  25.41% 51.76% 36.23% 16.17% 29.06% 51.35%
##    24:  25.45% 54.12% 36.02% 16.09% 29.36% 50.00%
##    25:  24.59% 52.94% 33.90% 15.54% 28.61% 51.35%
##    26:  25.10% 56.47% 35.38% 15.93% 28.32% 51.35%
##    27:  24.98% 52.94% 35.17% 15.54% 29.36% 50.00%
##    28:  25.25% 54.12% 35.38% 16.09% 28.91% 51.35%
##    29:  25.10% 55.29% 36.02% 15.85% 28.46% 48.65%
##    30:  24.32% 55.29% 34.96% 14.98% 28.02% 47.30%
##    31:  24.24% 54.12% 33.69% 14.91% 28.76% 48.65%
##    32:  24.28% 54.12% 34.11% 14.75% 28.46% 52.70%
##    33:  23.89% 54.12% 33.26% 14.43% 28.17% 52.70%
##    34:  23.93% 54.12% 34.32% 13.80% 28.76% 52.70%
##    35:  24.01% 55.29% 34.96% 13.72% 28.61% 52.70%
##    36:  24.20% 55.29% 34.53% 14.35% 28.46% 52.70%
##    37:  23.54% 54.12% 33.90% 13.25% 28.61% 52.70%
##    38:  23.74% 50.59% 35.17% 13.56% 28.32% 52.70%
##    39:  23.70% 52.94% 34.11% 13.56% 28.61% 52.70%
##    40:  23.35% 49.41% 34.53% 13.01% 28.46% 52.70%
##    41:  23.07% 52.94% 33.69% 12.78% 28.02% 52.70%
##    42:  23.39% 52.94% 33.05% 13.25% 28.76% 52.70%
##    43:  23.77% 57.65% 33.47% 13.49% 28.76% 54.05%
##    44:  23.39% 54.12% 33.47% 12.93% 28.61% 55.41%
##    45:  23.42% 56.47% 33.90% 12.54% 28.91% 55.41%
##    46:  23.74% 56.47% 35.59% 12.93% 28.17% 55.41%
##    47:  23.07% 57.65% 33.47% 12.30% 28.46% 52.70%
##    48:  23.11% 56.47% 33.90% 12.38% 28.32% 52.70%
##    49:  23.39% 60.00% 34.32% 12.46% 28.46% 52.70%
##    50:  23.00% 57.65% 35.38% 11.51% 28.32% 52.70%
##    51:  22.61% 60.00% 34.11% 11.59% 27.57% 50.00%
##    52:  22.53% 60.00% 33.26% 11.44% 28.17% 50.00%
##    53:  22.92% 56.47% 33.47% 12.30% 28.17% 51.35%
##    54:  22.57% 58.82% 33.90% 11.44% 28.02% 50.00%
##    55:  22.45% 57.65% 33.69% 11.59% 27.42% 51.35%
##    56:  22.37% 58.82% 32.42% 11.51% 28.17% 50.00%
##    57:  22.37% 60.00% 32.84% 11.44% 27.87% 50.00%
##    58:  22.37% 60.00% 32.84% 11.12% 28.32% 51.35%
##    59:  22.37% 60.00% 33.05% 11.12% 28.17% 51.35%
##    60:  22.65% 58.82% 33.05% 11.51% 28.61% 51.35%
##    61:  21.95% 58.82% 31.36% 10.88% 28.32% 51.35%
##    62:  22.37% 61.18% 32.42% 11.04% 28.76% 50.00%
##    63:  22.33% 61.18% 32.42% 10.73% 29.21% 50.00%
##    64:  22.57% 61.18% 32.84% 10.88% 29.21% 52.70%
##    65:  22.22% 58.82% 33.26% 10.41% 28.91% 51.35%
##    66:  22.22% 60.00% 33.05% 10.25% 29.06% 52.70%
##    67:  22.45% 60.00% 33.90% 10.65% 28.61% 52.70%
##    68:  22.22% 61.18% 33.69% 10.02% 28.91% 52.70%
##    69:  22.10% 60.00% 33.47% 10.25% 28.46% 51.35%
##    70:  21.98% 58.82% 33.47% 10.17% 28.17% 52.70%
##    71:  22.06% 61.18% 33.69% 10.25% 28.02% 51.35%
##    72:  22.26% 61.18% 33.26% 10.33% 28.91% 51.35%
##    73:  22.41% 63.53% 34.32% 10.25% 28.46% 52.70%
##    74:  22.14% 63.53% 33.69% 10.09% 28.32% 51.35%
##    75:  22.30% 64.71% 32.84% 10.41% 28.76% 51.35%
##    76:  22.02% 62.35% 32.84% 10.17% 28.46% 51.35%
##    77:  21.87% 62.35% 32.42%  9.70% 28.91% 52.70%
##    78:  21.60% 61.18% 33.47%  9.62% 27.27% 54.05%
##    79:  21.56% 61.18% 32.84%  9.31% 28.17% 54.05%
##    80:  21.56% 61.18% 32.42%  9.46% 28.17% 54.05%
##    81:  21.40% 61.18% 32.20%  9.54% 27.57% 54.05%
##    82:  21.67% 62.35% 33.05%  9.78% 27.57% 52.70%
##    83:  21.98% 62.35% 33.47%  9.86% 28.32% 52.70%
##    84:  21.83% 62.35% 33.69% 10.02% 27.27% 52.70%
##    85:  21.48% 61.18% 32.84%  9.86% 27.12% 51.35%
##    86:  21.63% 64.71% 32.63%  9.54% 27.87% 52.70%
##    87:  21.91% 63.53% 33.90% 10.02% 27.27% 52.70%
##    88:  21.52% 63.53% 32.20%  9.70% 27.57% 52.70%
##    89:  21.75% 62.35% 34.32%  9.62% 27.27% 52.70%
##    90:  21.44% 61.18% 33.90%  9.23% 27.27% 52.70%
##    91:  21.44% 62.35% 33.47%  9.31% 27.42% 51.35%
##    92:  21.25% 62.35% 31.57%  9.46% 27.57% 52.70%
##    93:  21.40% 61.18% 32.42%  9.31% 27.87% 54.05%
##    94:  21.05% 62.35% 31.57%  9.23% 27.12% 54.05%
##    95:  21.32% 62.35% 32.20%  9.46% 27.27% 54.05%
##    96:  21.13% 62.35% 31.78%  9.31% 27.27% 52.70%
##    97:  20.97% 60.00% 31.78%  8.83% 27.72% 54.05%
##    98:  21.05% 60.00% 31.57%  9.07% 28.02% 51.35%
##    99:  21.05% 60.00% 31.99%  8.83% 27.87% 54.05%
##   100:  21.25% 62.35% 32.20%  8.99% 28.17% 51.35%
##   101:  21.13% 62.35% 32.20%  8.83% 28.02% 51.35%
##   102:  21.05% 62.35% 32.20%  8.68% 27.87% 52.70%
##   103:  20.93% 60.00% 31.78%  8.75% 27.87% 52.70%
##   104:  20.86% 62.35% 32.20%  8.20% 28.02% 52.70%
##   105:  20.89% 61.18% 32.42%  8.36% 27.87% 52.70%
##   106:  21.32% 61.18% 32.84%  8.99% 28.02% 52.70%
##   107:  21.17% 61.18% 32.42%  8.68% 28.32% 52.70%
##   108:  21.36% 61.18% 33.26%  8.83% 28.17% 52.70%
##   109:  21.44% 60.00% 32.63%  8.91% 28.76% 54.05%
##   110:  21.71% 62.35% 33.26%  9.15% 28.61% 54.05%
##   111:  21.28% 62.35% 32.63%  8.68% 28.32% 54.05%
##   112:  21.44% 62.35% 33.05%  8.68% 28.61% 54.05%
##   113:  21.28% 62.35% 32.84%  8.68% 28.17% 54.05%
##   114:  21.09% 61.18% 32.84%  8.52% 27.87% 54.05%
##   115:  21.48% 61.18% 33.47%  8.60% 28.76% 54.05%
##   116:  20.97% 60.00% 32.84%  8.44% 27.87% 52.70%
##   117:  21.44% 62.35% 33.47%  8.60% 28.61% 52.70%
##   118:  21.28% 63.53% 33.05%  8.36% 28.61% 52.70%
##   119:  21.17% 61.18% 33.47%  8.28% 28.32% 52.70%
##   120:  21.32% 63.53% 33.69%  8.28% 28.46% 52.70%
##   121:  21.13% 63.53% 33.26%  8.36% 27.72% 54.05%
##   122:  21.13% 62.35% 33.26%  8.28% 28.02% 54.05%
##   123:  20.97% 62.35% 31.99%  8.52% 27.87% 54.05%
##   124:  21.28% 62.35% 33.05%  8.60% 28.17% 54.05%
##   125:  21.28% 63.53% 33.47%  8.60% 27.72% 54.05%
##   126:  21.13% 62.35% 32.63%  8.28% 28.46% 54.05%
##   127:  21.32% 64.71% 32.63%  8.60% 28.32% 54.05%
##   128:  21.40% 63.53% 33.05%  8.68% 28.17% 55.41%
##   129:  21.36% 64.71% 33.47%  8.44% 28.17% 54.05%
##   130:  21.36% 64.71% 33.26%  8.52% 28.02% 55.41%
##   131:  21.25% 63.53% 33.47%  8.60% 27.57% 54.05%
##   132:  21.21% 63.53% 33.90%  8.36% 27.57% 54.05%
##   133:  21.05% 63.53% 33.26%  8.44% 27.27% 54.05%
##   134:  21.13% 64.71% 33.69%  8.44% 27.12% 54.05%
##   135:  21.13% 63.53% 33.47%  8.20% 27.87% 54.05%
##   136:  21.05% 63.53% 32.42%  8.44% 27.72% 55.41%
##   137:  20.97% 64.71% 32.84%  8.28% 27.42% 54.05%
##   138:  20.97% 64.71% 32.42%  8.44% 27.42% 54.05%
##   139:  21.28% 64.71% 32.63%  8.83% 27.72% 54.05%
##   140:  21.21% 64.71% 32.42%  8.68% 27.87% 54.05%
##   141:  21.13% 64.71% 31.99%  8.60% 28.02% 54.05%
##   142:  21.13% 65.88% 31.99%  8.60% 27.87% 54.05%
##   143:  21.05% 64.71% 31.99%  8.75% 27.42% 54.05%
##   144:  21.01% 64.71% 31.99%  8.68% 27.42% 54.05%
##   145:  20.89% 64.71% 31.99%  8.60% 27.12% 54.05%
##   146:  20.97% 64.71% 31.99%  8.44% 27.72% 54.05%
##   147:  20.86% 64.71% 31.78%  8.44% 27.42% 54.05%
##   148:  20.78% 63.53% 31.36%  8.60% 27.42% 52.70%
##   149:  20.93% 63.53% 31.99%  8.44% 27.72% 54.05%
##   150:  21.01% 63.53% 31.99%  8.60% 27.72% 54.05%
##   151:  20.86% 62.35% 31.78%  8.44% 27.72% 54.05%
##   152:  20.97% 63.53% 31.99%  8.60% 27.57% 54.05%
##   153:  20.93% 62.35% 31.99%  8.91% 26.83% 55.41%
##   154:  20.86% 63.53% 31.99%  8.60% 26.97% 55.41%
##   155:  20.93% 63.53% 31.78%  8.75% 27.27% 54.05%
##   156:  20.89% 63.53% 31.78%  8.75% 27.12% 54.05%
##   157:  21.01% 63.53% 31.99%  8.99% 26.97% 54.05%
##   158:  21.21% 63.53% 32.84%  8.75% 27.42% 55.41%
##   159:  20.93% 63.53% 31.78%  8.68% 27.27% 55.41%
##   160:  21.09% 63.53% 31.78%  8.91% 27.42% 55.41%
##   161:  20.74% 61.18% 31.36%  8.68% 27.12% 55.41%
##   162:  21.05% 63.53% 31.57%  8.68% 27.87% 55.41%
##   163:  20.97% 62.35% 31.78%  8.36% 28.17% 55.41%
##   164:  20.66% 61.18% 30.93%  8.36% 27.72% 55.41%
##   165:  20.70% 63.53% 30.72%  8.44% 27.57% 55.41%
##   166:  20.93% 64.71% 31.14%  8.36% 28.17% 55.41%
##   167:  20.66% 64.71% 30.72%  8.20% 27.72% 55.41%
##   168:  20.35% 64.71% 30.51%  7.81% 27.42% 55.41%
##   169:  20.62% 64.71% 30.72%  8.36% 27.27% 55.41%
##   170:  20.58% 63.53% 30.72%  8.36% 27.27% 55.41%
##   171:  20.70% 63.53% 31.36%  8.20% 27.57% 55.41%
##   172:  20.31% 64.71% 31.14%  7.89% 26.68% 55.41%
##   173:  20.74% 63.53% 31.36%  8.36% 27.42% 55.41%
##   174:  20.47% 62.35% 31.14%  7.97% 27.42% 55.41%
##   175:  20.54% 61.18% 31.36%  8.20% 27.27% 55.41%
##   176:  20.47% 61.18% 30.93%  8.12% 27.42% 55.41%
##   177:  20.43% 62.35% 30.93%  8.04% 27.27% 55.41%
##   178:  20.54% 62.35% 30.93%  8.12% 27.57% 55.41%
##   179:  20.31% 62.35% 30.93%  7.97% 26.97% 55.41%
##   180:  20.08% 61.18% 30.72%  7.65% 26.97% 55.41%
##   181:  20.31% 62.35% 31.14%  7.89% 26.97% 55.41%
##   182:  20.51% 62.35% 31.36%  7.97% 27.42% 55.41%
##   183:  20.39% 62.35% 31.36%  7.73% 27.42% 55.41%
##   184:  20.47% 63.53% 30.51%  8.04% 27.57% 55.41%
##   185:  20.35% 61.18% 30.72%  8.04% 27.27% 55.41%
##   186:  20.43% 61.18% 30.93%  8.04% 27.42% 55.41%
##   187:  20.47% 61.18% 30.93%  8.12% 27.42% 55.41%
##   188:  20.19% 61.18% 30.72%  7.81% 27.12% 55.41%
##   189:  20.23% 60.00% 30.72%  7.89% 27.27% 55.41%
##   190:  20.16% 60.00% 30.93%  7.89% 26.68% 56.76%
##   191:  20.08% 60.00% 31.14%  7.73% 26.53% 56.76%
##   192:  20.23% 60.00% 30.93%  8.04% 26.68% 56.76%
##   193:  20.31% 60.00% 31.36%  8.12% 26.53% 56.76%
##   194:  20.35% 60.00% 30.93%  8.36% 26.53% 56.76%
##   195:  20.19% 60.00% 31.14%  7.97% 26.53% 56.76%
##   196:  20.27% 61.18% 31.14%  8.12% 26.38% 56.76%
##   197:  20.31% 61.18% 30.93%  8.12% 26.68% 56.76%
##   198:  20.43% 61.18% 31.14%  8.12% 26.97% 56.76%
##   199:  20.47% 60.00% 31.57%  8.12% 26.97% 56.76%
##   200:  20.47% 61.18% 31.78%  8.20% 26.68% 55.41%
##   201:  20.39% 60.00% 31.36%  8.28% 26.68% 55.41%
##   202:  20.39% 60.00% 30.93%  8.12% 27.12% 56.76%
##   203:  20.35% 60.00% 31.14%  8.04% 26.97% 56.76%
##   204:  20.43% 61.18% 31.14%  8.20% 26.83% 56.76%
##   205:  20.35% 61.18% 31.14%  8.12% 26.68% 56.76%
##   206:  20.51% 61.18% 31.57%  8.20% 26.97% 55.41%
##   207:  20.43% 61.18% 31.36%  8.20% 26.83% 55.41%
##   208:  20.35% 61.18% 30.93%  8.12% 26.83% 56.76%
##   209:  20.47% 60.00% 31.57%  8.28% 26.83% 55.41%
##   210:  20.27% 60.00% 31.78%  7.97% 26.53% 55.41%
##   211:  20.51% 60.00% 32.20%  8.12% 26.83% 55.41%
##   212:  20.47% 60.00% 31.57%  8.20% 26.97% 55.41%
##   213:  20.74% 61.18% 32.20%  8.44% 26.97% 55.41%
##   214:  20.43% 61.18% 31.14%  8.44% 26.53% 55.41%
##   215:  20.43% 61.18% 31.36%  8.28% 26.68% 55.41%
##   216:  20.43% 60.00% 30.93%  8.36% 26.97% 55.41%
##   217:  20.31% 60.00% 31.57%  8.20% 26.38% 55.41%
##   218:  20.19% 60.00% 31.14%  8.36% 25.93% 55.41%
##   219:  20.47% 60.00% 31.78%  8.44% 26.38% 55.41%
##   220:  20.39% 60.00% 31.57%  8.12% 26.83% 55.41%
##   221:  20.47% 60.00% 31.99%  8.28% 26.53% 55.41%
##   222:  20.51% 61.18% 31.57%  8.28% 26.83% 55.41%
##   223:  20.35% 60.00% 31.57%  8.12% 26.68% 55.41%
##   224:  20.31% 61.18% 31.57%  8.04% 26.53% 55.41%
##   225:  20.54% 60.00% 32.20%  8.12% 26.97% 55.41%
##   226:  20.74% 61.18% 32.63%  8.20% 27.12% 55.41%
##   227:  20.62% 61.18% 31.99%  8.12% 27.27% 55.41%
##   228:  20.54% 61.18% 31.57%  8.04% 27.42% 55.41%
##   229:  20.86% 61.18% 31.99%  8.60% 27.27% 55.41%
##   230:  20.51% 61.18% 31.57%  8.12% 27.12% 55.41%
##   231:  20.74% 61.18% 31.78%  8.36% 27.42% 55.41%
##   232:  20.74% 61.18% 31.99%  8.20% 27.57% 55.41%
##   233:  20.66% 61.18% 32.20%  8.36% 26.83% 55.41%
##   234:  20.47% 61.18% 31.36%  8.36% 26.68% 55.41%
##   235:  20.58% 61.18% 31.78%  8.44% 26.68% 55.41%
##   236:  20.62% 61.18% 32.20%  8.44% 26.53% 55.41%
##   237:  20.47% 61.18% 31.36%  8.52% 26.38% 55.41%
##   238:  20.58% 61.18% 31.78%  8.36% 26.83% 55.41%
##   239:  20.74% 61.18% 31.99%  8.75% 26.53% 55.41%
##   240:  20.54% 61.18% 31.78%  8.60% 26.23% 55.41%
##   241:  20.62% 61.18% 31.78%  8.68% 26.38% 55.41%
##   242:  20.66% 61.18% 31.78%  8.60% 26.68% 55.41%
##   243:  20.54% 61.18% 31.99%  8.44% 26.38% 55.41%
##   244:  20.31% 61.18% 31.78%  8.04% 26.38% 55.41%
##   245:  20.62% 61.18% 32.20%  8.52% 26.38% 55.41%
##   246:  20.78% 61.18% 32.20%  8.52% 26.97% 55.41%
##   247:  20.51% 61.18% 31.99%  8.20% 26.68% 55.41%
##   248:  20.70% 61.18% 32.42%  8.28% 26.83% 56.76%
##   249:  20.51% 61.18% 31.99%  8.28% 26.53% 55.41%
##   250:  20.58% 61.18% 32.20%  8.20% 26.68% 56.76%
##   251:  20.62% 61.18% 31.99%  8.28% 26.83% 56.76%
##   252:  20.51% 61.18% 31.78%  8.20% 26.83% 55.41%
##   253:  20.58% 61.18% 31.57%  8.36% 27.12% 54.05%
##   254:  20.82% 61.18% 32.42%  8.52% 26.97% 55.41%
##   255:  20.66% 61.18% 31.78%  8.44% 26.97% 55.41%
##   256:  20.62% 60.00% 31.78%  8.60% 26.83% 54.05%
##   257:  20.70% 60.00% 31.78%  8.52% 27.12% 55.41%
##   258:  20.66% 61.18% 31.78%  8.52% 26.83% 55.41%
##   259:  20.35% 60.00% 31.36%  8.52% 26.23% 54.05%
##   260:  20.54% 60.00% 32.20%  8.44% 26.38% 55.41%
##   261:  20.43% 60.00% 31.78%  8.36% 26.53% 54.05%
##   262:  20.54% 60.00% 31.36%  8.75% 26.38% 55.41%
##   263:  20.39% 60.00% 31.57%  8.44% 26.23% 55.41%
##   264:  20.39% 60.00% 31.57%  8.44% 26.23% 55.41%
##   265:  20.39% 60.00% 32.20%  8.20% 26.38% 54.05%
##   266:  20.35% 60.00% 31.99%  8.36% 26.08% 54.05%
##   267:  20.35% 60.00% 31.78%  8.36% 26.08% 55.41%
##   268:  20.43% 60.00% 31.99%  8.44% 26.08% 55.41%
##   269:  20.23% 60.00% 31.57%  8.36% 25.93% 54.05%
##   270:  20.12% 60.00% 31.78%  8.04% 25.93% 54.05%
##   271:  20.04% 60.00% 31.36%  8.12% 25.78% 54.05%
##   272:  20.08% 60.00% 30.93%  8.28% 25.93% 54.05%
##   273:  20.12% 60.00% 31.36%  8.28% 25.78% 54.05%
##   274:  20.00% 60.00% 31.14%  8.20% 25.63% 54.05%
##   275:  20.19% 60.00% 31.36%  8.28% 26.08% 54.05%
##   276:  20.08% 60.00% 31.57%  7.97% 26.08% 54.05%
##   277:  20.27% 60.00% 31.99%  8.28% 25.78% 55.41%
##   278:  20.12% 60.00% 31.57%  8.12% 25.78% 55.41%
##   279:  20.08% 60.00% 31.57%  7.89% 26.08% 55.41%
##   280:  20.04% 60.00% 31.57%  7.81% 26.08% 55.41%
##   281:  20.12% 60.00% 31.78%  7.89% 26.08% 55.41%
##   282:  19.81% 60.00% 31.36%  7.65% 25.78% 54.05%
##   283:  20.19% 60.00% 32.42%  7.81% 26.23% 54.05%
##   284:  19.96% 60.00% 31.57%  7.73% 26.08% 54.05%
##   285:  20.31% 60.00% 32.20%  7.97% 26.53% 54.05%
##   286:  20.27% 60.00% 32.63%  7.65% 26.68% 54.05%
##   287:  20.16% 60.00% 31.78%  7.73% 26.68% 54.05%
##   288:  20.23% 60.00% 32.20%  7.81% 26.68% 52.70%
##   289:  20.23% 60.00% 32.42%  7.89% 26.23% 54.05%
##   290:  20.19% 61.18% 32.42%  7.73% 26.23% 54.05%
##   291:  20.23% 61.18% 32.20%  7.73% 26.68% 52.70%
##   292:  20.19% 61.18% 32.20%  7.73% 26.53% 52.70%
##   293:  20.31% 61.18% 32.63%  7.73% 26.68% 52.70%
##   294:  20.12% 61.18% 32.42%  7.57% 26.38% 52.70%
##   295:  20.19% 61.18% 31.99%  7.73% 26.53% 54.05%
##   296:  20.23% 61.18% 32.20%  7.65% 26.68% 54.05%
##   297:  20.12% 61.18% 31.78%  7.81% 26.38% 52.70%
##   298:  20.27% 61.18% 31.99%  7.97% 26.53% 52.70%
##   299:  20.23% 61.18% 31.78%  7.73% 26.83% 54.05%
##   300:  20.19% 61.18% 31.78%  7.89% 26.53% 52.70%
##   301:  20.27% 61.18% 32.42%  7.81% 26.53% 52.70%
##   302:  20.16% 61.18% 31.99%  7.81% 26.38% 52.70%
##   303:  20.31% 61.18% 31.99%  8.04% 26.53% 52.70%
##   304:  20.27% 61.18% 31.78%  8.04% 26.53% 52.70%
##   305:  20.35% 61.18% 32.42%  7.89% 26.68% 52.70%
##   306:  20.35% 61.18% 32.20%  8.04% 26.53% 52.70%
##   307:  20.23% 61.18% 32.20%  7.97% 26.23% 52.70%
##   308:  20.19% 61.18% 31.99%  7.89% 26.23% 54.05%
##   309:  20.12% 61.18% 31.78%  7.81% 26.23% 54.05%
##   310:  20.23% 61.18% 32.20%  7.81% 26.38% 54.05%
##   311:  20.12% 61.18% 31.99%  7.73% 26.23% 54.05%
##   312:  20.12% 61.18% 32.20%  7.73% 26.08% 54.05%
##   313:  20.27% 61.18% 32.20%  7.97% 26.23% 54.05%
##   314:  20.39% 61.18% 32.63%  7.81% 26.53% 55.41%
##   315:  20.35% 61.18% 32.20%  7.89% 26.53% 55.41%
##   316:  20.31% 61.18% 32.20%  7.89% 26.38% 55.41%
##   317:  20.23% 61.18% 31.99%  7.89% 26.23% 55.41%
##   318:  20.35% 61.18% 31.99%  8.04% 26.38% 55.41%
##   319:  20.27% 61.18% 31.99%  7.97% 26.38% 54.05%
##   320:  20.12% 61.18% 31.57%  7.81% 26.23% 55.41%
##   321:  20.27% 61.18% 31.57%  7.97% 26.53% 55.41%
##   322:  20.16% 61.18% 31.99%  7.81% 26.23% 54.05%
##   323:  20.19% 61.18% 31.57%  7.89% 26.53% 54.05%
##   324:  20.19% 61.18% 32.20%  7.81% 26.23% 54.05%
##   325:  20.23% 61.18% 32.20%  7.89% 26.23% 54.05%
##   326:  20.19% 61.18% 32.63%  7.73% 26.08% 54.05%
##   327:  20.23% 61.18% 32.42%  7.89% 26.08% 54.05%
##   328:  20.16% 61.18% 32.20%  7.81% 25.93% 55.41%
##   329:  20.08% 61.18% 32.20%  7.81% 25.78% 54.05%
##   330:  19.92% 61.18% 31.78%  7.73% 25.63% 54.05%
##   331:  20.00% 61.18% 32.20%  7.73% 25.78% 52.70%
##   332:  20.00% 61.18% 32.42%  7.81% 25.63% 51.35%
##   333:  19.92% 61.18% 32.42%  7.57% 25.78% 51.35%
##   334:  19.84% 61.18% 32.42%  7.57% 25.48% 51.35%
##   335:  19.88% 61.18% 32.20%  7.73% 25.48% 51.35%
##   336:  20.00% 61.18% 32.63%  7.81% 25.48% 51.35%
##   337:  19.88% 61.18% 32.63%  7.65% 25.34% 51.35%
##   338:  20.04% 61.18% 32.63%  7.73% 25.48% 54.05%
##   339:  19.81% 61.18% 32.42%  7.41% 25.48% 52.70%
##   340:  20.00% 61.18% 32.84%  7.57% 25.48% 54.05%
##   341:  19.96% 61.18% 32.42%  7.65% 25.48% 54.05%
##   342:  20.00% 61.18% 32.63%  7.81% 25.19% 54.05%
##   343:  20.19% 61.18% 32.84%  7.81% 25.78% 54.05%
##   344:  19.92% 61.18% 32.63%  7.65% 25.19% 54.05%
##   345:  19.96% 61.18% 32.63%  7.49% 25.48% 55.41%
##   346:  19.84% 61.18% 32.42%  7.49% 25.19% 55.41%
##   347:  20.16% 61.18% 32.20%  7.81% 25.93% 55.41%
##   348:  19.77% 61.18% 31.99%  7.49% 25.19% 55.41%
##   349:  19.77% 61.18% 31.99%  7.49% 25.19% 55.41%
##   350:  19.88% 61.18% 32.20%  7.65% 25.19% 55.41%
##   351:  19.77% 61.18% 31.78%  7.49% 25.48% 54.05%
##   352:  19.84% 61.18% 31.99%  7.41% 25.78% 54.05%
##   353:  19.92% 61.18% 31.99%  7.65% 25.63% 54.05%
##   354:  19.84% 61.18% 31.78%  7.41% 25.93% 54.05%
##   355:  19.84% 61.18% 31.57%  7.41% 26.08% 54.05%
##   356:  20.00% 61.18% 32.20%  7.49% 26.08% 54.05%
##   357:  20.00% 61.18% 32.42%  7.49% 25.93% 54.05%
##   358:  19.96% 61.18% 31.99%  7.49% 26.08% 54.05%
##   359:  20.00% 61.18% 32.20%  7.49% 26.08% 54.05%
##   360:  20.04% 61.18% 32.63%  7.33% 26.23% 54.05%
##   361:  20.00% 61.18% 31.99%  7.41% 26.38% 54.05%
##   362:  19.88% 61.18% 31.78%  7.41% 26.08% 54.05%
##   363:  20.04% 61.18% 32.20%  7.49% 26.23% 54.05%
##   364:  20.04% 61.18% 31.99%  7.57% 26.08% 55.41%
##   365:  20.00% 61.18% 32.42%  7.57% 25.63% 55.41%
##   366:  19.73% 61.18% 31.57%  7.57% 25.34% 54.05%
##   367:  19.92% 61.18% 31.78%  7.65% 25.63% 55.41%
##   368:  20.00% 61.18% 31.78%  7.65% 25.93% 55.41%
##   369:  20.08% 61.18% 31.99%  7.65% 26.08% 55.41%
##   370:  19.96% 61.18% 31.78%  7.73% 25.63% 55.41%
##   371:  19.96% 61.18% 31.57%  7.73% 25.78% 55.41%
##   372:  19.84% 61.18% 31.57%  7.57% 25.63% 55.41%
##   373:  19.92% 61.18% 31.36%  7.57% 26.08% 55.41%
##   374:  19.96% 61.18% 30.93%  7.57% 26.53% 55.41%
##   375:  19.88% 61.18% 30.93%  7.57% 26.23% 55.41%
##   376:  19.84% 61.18% 30.72%  7.73% 25.93% 55.41%
##   377:  19.92% 61.18% 30.93%  7.57% 26.38% 55.41%
##   378:  19.81% 61.18% 30.72%  7.73% 25.78% 55.41%
##   379:  19.73% 61.18% 30.93%  7.73% 25.34% 55.41%
##   380:  19.88% 61.18% 30.72%  7.89% 25.78% 55.41%
##   381:  19.88% 61.18% 31.14%  7.89% 25.48% 55.41%
##   382:  19.81% 61.18% 31.14%  7.81% 25.34% 55.41%
##   383:  19.81% 61.18% 30.93%  7.97% 25.19% 55.41%
##   384:  19.92% 61.18% 30.72%  8.04% 25.63% 55.41%
##   385:  20.12% 61.18% 31.78%  8.04% 25.63% 55.41%
##   386:  19.77% 61.18% 30.72%  7.89% 25.34% 55.41%
##   387:  19.92% 61.18% 31.36%  8.04% 25.19% 55.41%
##   388:  19.84% 61.18% 30.93%  7.97% 25.34% 55.41%
##   389:  19.96% 61.18% 31.14%  8.04% 25.48% 55.41%
##   390:  19.96% 61.18% 31.36%  7.89% 25.63% 55.41%
##   391:  20.00% 61.18% 31.36%  7.97% 25.63% 55.41%
##   392:  19.96% 61.18% 31.14%  8.04% 25.48% 55.41%
##   393:  20.04% 61.18% 31.14%  8.04% 25.78% 55.41%
##   394:  20.04% 61.18% 31.36%  7.89% 25.93% 55.41%
##   395:  19.96% 61.18% 31.36%  7.97% 25.48% 55.41%
##   396:  20.12% 61.18% 31.57%  7.97% 25.93% 55.41%
##   397:  19.96% 61.18% 31.36%  7.89% 25.63% 55.41%
##   398:  19.92% 61.18% 31.14%  7.97% 25.48% 55.41%
##   399:  19.96% 61.18% 30.93%  7.97% 25.78% 55.41%
##   400:  20.08% 62.35% 31.36%  7.97% 25.78% 55.41%
##   401:  19.92% 61.18% 31.57%  7.89% 25.34% 55.41%
##   402:  19.84% 61.18% 31.57%  7.89% 25.04% 55.41%
##   403:  19.96% 61.18% 31.78%  7.89% 25.34% 55.41%
##   404:  19.96% 61.18% 31.99%  7.89% 25.19% 55.41%
##   405:  19.92% 61.18% 31.78%  7.81% 25.34% 55.41%
##   406:  19.88% 61.18% 31.78%  7.73% 25.34% 55.41%
##   407:  20.00% 61.18% 31.99%  7.81% 25.48% 55.41%
##   408:  20.00% 61.18% 32.42%  7.81% 25.19% 55.41%
##   409:  20.00% 61.18% 31.99%  7.89% 25.34% 55.41%
##   410:  19.92% 61.18% 31.78%  7.89% 25.19% 55.41%
##   411:  19.92% 61.18% 32.42%  7.73% 25.04% 55.41%
##   412:  19.92% 61.18% 32.20%  7.89% 24.89% 55.41%
##   413:  19.92% 61.18% 31.99%  7.89% 25.04% 55.41%
##   414:  20.00% 61.18% 32.20%  7.89% 25.19% 55.41%
##   415:  20.00% 61.18% 31.99%  7.89% 25.34% 55.41%
##   416:  20.00% 61.18% 31.99%  7.81% 25.48% 55.41%
##   417:  20.08% 61.18% 32.42%  7.81% 25.48% 55.41%
##   418:  20.00% 61.18% 31.99%  7.89% 25.34% 55.41%
##   419:  20.04% 61.18% 31.99%  7.89% 25.48% 55.41%
##   420:  20.04% 61.18% 32.42%  7.81% 25.34% 55.41%
##   421:  20.00% 61.18% 31.99%  7.81% 25.48% 55.41%
##   422:  20.00% 61.18% 31.99%  7.81% 25.48% 55.41%
##   423:  19.96% 61.18% 31.36%  7.89% 25.63% 55.41%
##   424:  20.12% 61.18% 31.57%  8.04% 25.78% 55.41%
##   425:  20.16% 62.35% 32.20%  7.89% 25.63% 55.41%
##   426:  20.19% 62.35% 32.20%  7.89% 25.78% 55.41%
##   427:  20.16% 61.18% 31.99%  7.97% 25.78% 55.41%
##   428:  20.12% 61.18% 31.99%  7.89% 25.78% 55.41%
##   429:  20.08% 62.35% 31.99%  7.81% 25.63% 55.41%
##   430:  20.08% 62.35% 31.57%  7.89% 25.78% 55.41%
##   431:  19.88% 62.35% 31.14%  7.57% 25.93% 55.41%
##   432:  19.96% 62.35% 31.14%  7.81% 25.78% 55.41%
##   433:  20.00% 62.35% 31.57%  7.81% 25.63% 55.41%
##   434:  19.96% 61.18% 31.14%  7.81% 25.93% 55.41%
##   435:  19.92% 61.18% 31.36%  7.73% 25.78% 55.41%
##   436:  19.96% 62.35% 31.36%  7.81% 25.63% 55.41%
##   437:  19.92% 62.35% 31.36%  7.81% 25.48% 55.41%
##   438:  20.00% 62.35% 31.57%  7.89% 25.48% 55.41%
##   439:  19.92% 61.18% 31.57%  7.89% 25.34% 55.41%
##   440:  19.88% 61.18% 31.14%  7.89% 25.48% 55.41%
##   441:  19.92% 61.18% 31.36%  7.81% 25.63% 55.41%
##   442:  19.81% 62.35% 31.14%  7.81% 25.34% 54.05%
##   443:  19.84% 61.18% 31.78%  7.73% 25.34% 54.05%
##   444:  19.81% 61.18% 31.36%  7.81% 25.34% 54.05%
##   445:  19.84% 61.18% 31.36%  7.73% 25.63% 54.05%
##   446:  19.81% 61.18% 31.36%  7.65% 25.63% 54.05%
##   447:  19.84% 61.18% 31.36%  7.73% 25.63% 54.05%
##   448:  19.92% 61.18% 31.57%  7.81% 25.63% 54.05%
##   449:  19.92% 61.18% 31.57%  7.81% 25.63% 54.05%
##   450:  19.84% 61.18% 31.14%  7.81% 25.63% 54.05%
##   451:  19.81% 61.18% 31.14%  7.73% 25.63% 54.05%
##   452:  19.77% 60.00% 30.93%  7.81% 25.63% 54.05%
##   453:  19.81% 60.00% 30.93%  7.81% 25.78% 54.05%
##   454:  19.81% 60.00% 30.93%  7.81% 25.78% 54.05%
##   455:  20.00% 60.00% 31.57%  7.97% 25.78% 54.05%
##   456:  20.08% 60.00% 31.78%  8.04% 25.78% 54.05%
##   457:  19.96% 60.00% 31.57%  7.89% 25.78% 54.05%
##   458:  20.08% 60.00% 31.36%  8.12% 25.93% 54.05%
##   459:  20.00% 60.00% 31.57%  7.89% 25.93% 54.05%
##   460:  19.65% 60.00% 30.93%  7.57% 25.63% 54.05%
##   461:  19.84% 60.00% 31.14%  7.97% 25.48% 54.05%
##   462:  19.81% 60.00% 31.36%  7.73% 25.63% 54.05%
##   463:  19.88% 60.00% 31.36%  7.89% 25.63% 54.05%
##   464:  19.92% 60.00% 31.36%  7.81% 25.93% 54.05%
##   465:  19.84% 60.00% 31.36%  7.73% 25.78% 54.05%
##   466:  19.77% 60.00% 31.36%  7.65% 25.78% 52.70%
##   467:  19.81% 61.18% 31.57%  7.57% 25.78% 52.70%
##   468:  19.81% 61.18% 31.36%  7.57% 25.78% 54.05%
##   469:  19.84% 61.18% 31.57%  7.65% 25.78% 52.70%
##   470:  19.92% 61.18% 31.78%  7.65% 25.93% 52.70%
##   471:  19.96% 61.18% 31.99%  7.73% 25.78% 52.70%
##   472:  19.96% 61.18% 32.20%  7.65% 25.78% 52.70%
##   473:  19.96% 61.18% 32.42%  7.49% 25.93% 52.70%
##   474:  19.88% 61.18% 32.20%  7.49% 25.78% 52.70%
##   475:  19.77% 61.18% 32.20%  7.57% 25.19% 52.70%
##   476:  19.96% 61.18% 31.99%  7.65% 25.93% 52.70%
##   477:  19.77% 61.18% 31.57%  7.57% 25.63% 52.70%
##   478:  19.84% 61.18% 31.99%  7.73% 25.34% 52.70%
##   479:  19.92% 61.18% 31.78%  7.81% 25.63% 52.70%
##   480:  19.84% 61.18% 31.57%  7.73% 25.63% 52.70%
##   481:  19.96% 62.35% 31.78%  7.73% 25.78% 52.70%
##   482:  19.88% 62.35% 31.36%  7.65% 25.93% 52.70%
##   483:  19.81% 61.18% 31.57%  7.65% 25.63% 52.70%
##   484:  19.84% 61.18% 31.57%  7.65% 25.78% 52.70%
##   485:  19.65% 61.18% 31.36%  7.49% 25.48% 52.70%
##   486:  19.73% 61.18% 31.36%  7.65% 25.48% 52.70%
##   487:  19.73% 61.18% 31.36%  7.57% 25.63% 52.70%
##   488:  19.81% 61.18% 31.36%  7.73% 25.63% 52.70%
##   489:  19.73% 61.18% 31.36%  7.65% 25.48% 52.70%
##   490:  19.69% 61.18% 31.36%  7.65% 25.34% 52.70%
##   491:  19.81% 61.18% 31.36%  7.73% 25.63% 52.70%
##   492:  19.69% 61.18% 31.36%  7.49% 25.63% 52.70%
##   493:  19.69% 61.18% 31.14%  7.57% 25.63% 52.70%
##   494:  19.69% 61.18% 31.36%  7.57% 25.48% 52.70%
##   495:  19.69% 61.18% 31.14%  7.57% 25.63% 52.70%
##   496:  19.69% 61.18% 31.14%  7.49% 25.78% 52.70%
##   497:  19.73% 61.18% 31.14%  7.65% 25.63% 52.70%
##   498:  19.73% 61.18% 31.36%  7.57% 25.63% 52.70%
##   499:  19.61% 61.18% 31.36%  7.49% 25.34% 52.70%
##   500:  19.65% 61.18% 31.57%  7.49% 25.34% 52.70%
test1 <- predict(model_rf1, newdata = test)
table(test1, test$Hospital.overall.rating)
##      
## test1   1   2   3   4   5
##     1  15   6   0   0   0
##     2  17 138  17   0   0
##     3   0  68 466  65   0
##     4   0   0  21 228  24
##     5   0   0   0   0  13
# test1   1   2   3   4   5
#     1  15   6   0   0   0
#     2  17 138  17   0   0
#     3   0  68 466  65   0
#     4   0   0  21 228  24
#     5   0   0   0   0  13

summary(model_rf1)
##                 Length Class  Mode     
## call                8  -none- call     
## type                1  -none- character
## predicted        2570  factor numeric  
## err.rate         3000  -none- numeric  
## confusion          30  -none- numeric  
## votes           12850  matrix numeric  
## oob.times        2570  -none- numeric  
## classes             5  -none- character
## importance         53  -none- numeric  
## importanceSD        0  -none- NULL     
## localImportance     0  -none- NULL     
## proximity           0  -none- NULL     
## ntree               1  -none- numeric  
## mtry                1  -none- numeric  
## forest             14  -none- list     
## y                2570  factor numeric  
## test                0  -none- NULL     
## inbag               0  -none- NULL     
## terms               3  terms  call
conf_matrix1 <- confusionMatrix(test1, test$Hospital.overall.rating, positive = "Yes")
conf_matrix1
## Confusion Matrix and Statistics
## 
##           Reference
## Prediction   1   2   3   4   5
##          1  15   6   0   0   0
##          2  17 138  17   0   0
##          3   0  68 466  65   0
##          4   0   0  21 228  24
##          5   0   0   0   0  13
## 
## Overall Statistics
##                                           
##                Accuracy : 0.7978          
##                  95% CI : (0.7725, 0.8214)
##     No Information Rate : 0.4675          
##     P-Value [Acc > NIR] : < 2.2e-16       
##                                           
##                   Kappa : 0.6835          
##                                           
##  Mcnemar's Test P-Value : NA              
## 
## Statistics by Class:
## 
##                      Class: 1 Class: 2 Class: 3 Class: 4 Class: 5
## Sensitivity           0.46875   0.6509   0.9246   0.7782  0.35135
## Specificity           0.99426   0.9607   0.7683   0.9427  1.00000
## Pos Pred Value        0.71429   0.8023   0.7780   0.8352  1.00000
## Neg Pred Value        0.98392   0.9183   0.9207   0.9193  0.97746
## Prevalence            0.02968   0.1967   0.4675   0.2718  0.03432
## Detection Rate        0.01391   0.1280   0.4323   0.2115  0.01206
## Detection Prevalence  0.01948   0.1596   0.5557   0.2532  0.01206
## Balanced Accuracy     0.73151   0.8058   0.8464   0.8604  0.67568
# Confusion Matrix and Statistics
#
#                   Reference
# Prediction   1   2   3   4   5
#          1  15   6   0   0   0
#          2  17 138  17   0   0
#          3   0  68 466  65   0
#          4   0   0  21 228  24
#          5   0   0   0   0  13
#
# Overall Statistics
#
# Accuracy : 0.7978
# 95% CI : (0.7725, 0.8214)
# No Information Rate : 0.4675
# P-Value [Acc > NIR] : < 2.2e-16
#
# Kappa : 0.6835
# Mcnemar's Test P-Value : NA
#
# Statistics by Class:
#
#                       Class: 1 Class: 2 Class: 3 Class: 4 Class: 5
# Sensitivity           0.46875   0.6509   0.9246   0.7782  0.35135
# Specificity           0.99426   0.9607   0.7683   0.9427  1.00000
# Pos Pred Value        0.71429   0.8023   0.7780   0.8352  1.00000
# Neg Pred Value        0.98392   0.9183   0.9207   0.9193  0.97746
# Prevalence            0.02968   0.1967   0.4675   0.2718  0.03432
# Detection Rate        0.01391   0.1280   0.4323   0.2115  0.01206
# Detection Prevalence  0.01948   0.1596   0.5557   0.2532  0.01206
# Balanced Accuracy     0.73151   0.8058   0.8464   0.8604  0.67568

# Accuracy is 79.8%

model_rf2 <- randomForest(Hospital.overall.rating ~ ., data = train, promiximity = FALSE, ntree = 1000, mtry = 20, do.trace = TRUE, na.action = na.omit)
## ntree      OOB      1      2      3      4      5
##     1:  37.38% 69.23% 48.82% 31.65% 36.69% 41.38%
##     2:  38.81% 52.17% 46.76% 33.20% 42.23% 42.55%
##     3:  36.65% 55.00% 45.19% 29.83% 41.24% 42.11%
##     4:  36.06% 52.86% 48.60% 28.06% 38.28% 55.74%
##     5:  35.12% 53.95% 45.26% 28.36% 36.35% 52.11%
##     6:  34.63% 53.85% 45.43% 26.53% 38.24% 49.32%
##     7:  33.25% 55.13% 43.83% 25.68% 35.09% 52.70%
##     8:  32.52% 52.50% 42.70% 24.76% 35.01% 54.05%
##     9:  32.65% 61.45% 43.38% 23.76% 35.95% 52.70%
##    10:  31.33% 51.81% 42.64% 22.81% 34.64% 51.35%
##    11:  30.94% 54.22% 41.36% 22.43% 34.48% 51.35%
##    12:  31.25% 52.38% 43.83% 22.33% 34.38% 51.35%
##    13:  29.89% 59.52% 40.76% 20.57% 33.43% 54.05%
##    14:  29.20% 57.14% 40.55% 19.51% 33.73% 50.00%
##    15:  28.83% 56.47% 39.07% 18.88% 34.43% 51.35%
##    16:  27.85% 55.29% 38.00% 17.54% 33.68% 55.41%
##    17:  27.41% 55.29% 38.98% 16.67% 33.38% 51.35%
##    18:  27.88% 57.65% 39.19% 17.38% 32.94% 55.41%
##    19:  26.29% 55.29% 36.86% 15.17% 32.94% 55.41%
##    20:  26.55% 56.47% 37.71% 15.47% 32.49% 56.76%
##    21:  26.16% 57.65% 38.14% 14.84% 31.89% 55.41%
##    22:  25.38% 55.29% 35.38% 14.84% 31.15% 55.41%
##    23:  24.99% 50.59% 36.23% 14.05% 31.00% 56.76%
##    24:  25.07% 51.76% 38.35% 13.50% 30.70% 56.76%
##    25:  24.63% 52.94% 36.23% 13.72% 29.51% 60.81%
##    26:  24.71% 52.94% 35.81% 13.56% 30.55% 59.46%
##    27:  24.75% 52.94% 36.86% 13.56% 29.81% 60.81%
##    28:  24.05% 56.47% 35.59% 12.54% 29.81% 58.11%
##    29:  23.97% 55.29% 35.17% 12.62% 29.51% 60.81%
##    30:  24.20% 57.65% 35.81% 13.09% 29.51% 54.05%
##    31:  24.24% 58.82% 36.86% 13.33% 28.02% 56.76%
##    32:  24.12% 58.82% 36.65% 12.85% 28.61% 56.76%
##    33:  23.93% 58.82% 35.38% 12.85% 29.06% 54.05%
##    34:  23.42% 58.82% 35.59% 12.62% 27.57% 52.70%
##    35:  23.27% 58.82% 35.59% 12.46% 27.27% 52.70%
##    36:  23.19% 60.00% 35.59% 11.67% 28.02% 55.41%
##    37:  23.77% 58.82% 36.86% 12.54% 28.17% 52.70%
##    38:  23.46% 60.00% 35.38% 12.22% 28.17% 55.41%
##    39:  23.62% 58.82% 35.81% 12.22% 28.91% 52.70%
##    40:  23.31% 55.29% 34.11% 12.22% 29.36% 52.70%
##    41:  23.39% 56.47% 35.17% 12.15% 29.06% 51.35%
##    42:  23.15% 58.82% 34.32% 11.99% 28.76% 51.35%
##    43:  22.57% 57.65% 34.53% 11.20% 28.17% 50.00%
##    44:  23.11% 58.82% 35.17% 11.67% 28.46% 52.70%
##    45:  22.84% 60.00% 34.96% 11.44% 28.02% 51.35%
##    46:  22.72% 60.00% 35.17% 11.59% 27.12% 51.35%
##    47:  22.80% 60.00% 35.81% 11.12% 27.57% 54.05%
##    48:  22.72% 60.00% 35.81% 10.96% 27.87% 51.35%
##    49:  22.30% 57.65% 34.32% 11.28% 26.83% 52.70%
##    50:  22.45% 58.82% 34.75% 10.88% 27.72% 52.70%
##    51:  22.30% 58.82% 34.32% 11.20% 26.97% 51.35%
##    52:  22.72% 60.00% 34.75% 11.36% 27.72% 52.70%
##    53:  22.45% 60.00% 33.90% 11.36% 27.12% 54.05%
##    54:  22.41% 60.00% 34.32% 11.59% 26.23% 54.05%
##    55:  22.33% 60.00% 33.69% 11.51% 26.83% 51.35%
##    56:  22.06% 58.82% 33.26% 10.96% 27.27% 51.35%
##    57:  22.26% 60.00% 33.26% 11.12% 27.27% 54.05%
##    58:  22.18% 58.82% 32.42% 11.36% 27.27% 54.05%
##    59:  22.18% 60.00% 31.36% 11.44% 27.72% 54.05%
##    60:  21.95% 60.00% 31.57% 10.80% 27.72% 55.41%
##    61:  22.18% 60.00% 31.99% 11.51% 26.97% 55.41%
##    62:  21.63% 60.00% 31.36% 10.80% 26.53% 56.76%
##    63:  21.56% 58.82% 31.57% 10.73% 26.38% 56.76%
##    64:  21.48% 57.65% 31.78% 10.41% 26.68% 56.76%
##    65:  21.87% 58.82% 31.36% 10.88% 27.42% 56.76%
##    66:  21.40% 60.00% 30.93% 10.49% 26.68% 55.41%
##    67:  21.44% 57.65% 30.72% 10.65% 26.83% 56.76%
##    68:  21.05% 56.47% 30.08% 10.25% 26.53% 58.11%
##    69:  21.13% 56.47% 29.66% 10.65% 26.68% 55.41%
##    70:  21.13% 56.47% 30.51% 10.49% 26.38% 55.41%
##    71:  21.13% 56.47% 30.08% 10.57% 26.68% 54.05%
##    72:  21.44% 60.00% 30.93% 10.65% 26.23% 58.11%
##    73:  21.48% 58.82% 30.93% 10.57% 26.68% 58.11%
##    74:  21.28% 57.65% 30.93% 10.49% 26.38% 56.76%
##    75:  21.17% 57.65% 31.36%  9.86% 26.68% 58.11%
##    76:  21.56% 58.82% 30.51% 10.41% 27.72% 56.76%
##    77:  21.48% 58.82% 30.72% 10.49% 26.97% 58.11%
##    78:  21.48% 60.00% 30.51% 10.49% 27.27% 55.41%
##    79:  21.40% 60.00% 30.72% 10.17% 27.27% 56.76%
##    80:  21.71% 61.18% 31.99% 10.33% 26.97% 58.11%
##    81:  21.56% 61.18% 31.78% 10.09% 27.12% 56.76%
##    82:  21.32% 61.18% 31.78%  9.78% 26.83% 56.76%
##    83:  21.52% 62.35% 31.36%  9.78% 27.57% 58.11%
##    84:  21.63% 62.35% 31.99%  9.86% 27.42% 58.11%
##    85:  22.10% 62.35% 32.84% 10.41% 27.57% 58.11%
##    86:  21.79% 61.18% 32.42% 10.25% 27.27% 56.76%
##    87:  21.63% 62.35% 31.99% 10.17% 27.12% 55.41%
##    88:  21.32% 62.35% 31.57%  9.78% 26.97% 55.41%
##    89:  21.44% 62.35% 31.78%  9.78% 27.12% 56.76%
##    90:  21.05% 58.82% 30.93%  9.62% 27.12% 55.41%
##    91:  21.36% 61.18% 31.78%  9.62% 27.57% 54.05%
##    92:  21.28% 62.35% 30.93%  9.70% 27.57% 54.05%
##    93:  21.48% 61.18% 31.57%  9.70% 27.87% 55.41%
##    94:  21.13% 62.35% 31.36%  9.62% 26.83% 54.05%
##    95:  21.36% 61.18% 31.36% 10.02% 27.27% 52.70%
##    96:  21.01% 61.18% 31.36%  9.54% 26.83% 52.70%
##    97:  21.17% 60.00% 31.14%  9.94% 26.97% 52.70%
##    98:  21.13% 61.18% 30.93%  9.86% 26.83% 54.05%
##    99:  21.05% 61.18% 31.36%  9.70% 26.53% 54.05%
##   100:  21.36% 58.82% 31.99%  9.86% 27.42% 52.70%
##   101:  20.97% 57.65% 32.42%  9.46% 26.53% 52.70%
##   102:  21.05% 57.65% 31.99%  9.38% 27.27% 52.70%
##   103:  20.86% 57.65% 31.99%  9.31% 26.68% 52.70%
##   104:  20.70% 57.65% 31.14%  9.23% 26.83% 52.70%
##   105:  20.89% 57.65% 31.57%  9.38% 26.97% 52.70%
##   106:  20.78% 57.65% 31.78%  9.23% 26.53% 54.05%
##   107:  21.01% 60.00% 31.78%  9.54% 26.53% 54.05%
##   108:  20.86% 60.00% 31.14%  9.46% 26.68% 52.70%
##   109:  21.05% 60.00% 31.78%  9.78% 26.38% 52.70%
##   110:  21.01% 60.00% 31.57%  9.54% 26.83% 52.70%
##   111:  20.97% 60.00% 31.78%  9.46% 26.68% 52.70%
##   112:  20.97% 60.00% 31.78%  9.62% 26.53% 51.35%
##   113:  20.82% 60.00% 31.14%  9.46% 26.68% 51.35%
##   114:  20.54% 60.00% 31.36%  9.07% 26.23% 51.35%
##   115:  20.51% 61.18% 31.36%  8.75% 26.53% 51.35%
##   116:  20.39% 61.18% 30.72%  8.91% 26.23% 51.35%
##   117:  20.70% 61.18% 31.14%  8.99% 26.97% 51.35%
##   118:  20.35% 61.18% 30.30%  8.60% 26.97% 51.35%
##   119:  20.39% 60.00% 30.51%  8.60% 27.12% 51.35%
##   120:  20.35% 58.82% 30.93%  8.44% 27.12% 51.35%
##   121:  20.31% 58.82% 30.51%  8.60% 26.97% 51.35%
##   122:  20.58% 58.82% 31.14%  8.83% 26.97% 52.70%
##   123:  20.35% 58.82% 30.72%  8.75% 26.68% 51.35%
##   124:  20.47% 58.82% 30.30%  8.83% 27.27% 51.35%
##   125:  20.70% 61.18% 30.72%  8.99% 27.12% 52.70%
##   126:  20.74% 61.18% 30.93%  8.99% 27.12% 52.70%
##   127:  20.66% 61.18% 30.30%  9.23% 26.83% 52.70%
##   128:  20.31% 61.18% 30.30%  8.83% 26.23% 52.70%
##   129:  20.54% 61.18% 30.51%  9.31% 26.08% 52.70%
##   130:  20.74% 61.18% 30.72%  9.46% 26.23% 54.05%
##   131:  20.62% 62.35% 30.08%  9.38% 26.23% 54.05%
##   132:  20.54% 62.35% 30.08%  9.23% 26.23% 54.05%
##   133:  20.43% 62.35% 30.51%  8.99% 25.93% 54.05%
##   134:  20.43% 62.35% 30.30%  9.15% 25.78% 54.05%
##   135:  20.54% 62.35% 30.51%  9.15% 26.08% 54.05%
##   136:  19.96% 62.35% 30.08%  8.52% 25.48% 52.70%
##   137:  20.19% 63.53% 29.87%  8.91% 25.63% 52.70%
##   138:  20.19% 63.53% 30.08%  8.83% 25.63% 52.70%
##   139:  20.04% 62.35% 30.08%  8.75% 25.34% 52.70%
##   140:  20.04% 61.18% 30.30%  8.52% 25.78% 52.70%
##   141:  19.96% 62.35% 29.87%  8.36% 25.93% 52.70%
##   142:  19.96% 61.18% 30.30%  8.36% 25.78% 52.70%
##   143:  20.12% 61.18% 30.08%  8.75% 25.78% 52.70%
##   144:  19.92% 61.18% 30.51%  8.28% 25.63% 52.70%
##   145:  20.04% 62.35% 30.51%  8.36% 25.78% 52.70%
##   146:  20.04% 61.18% 30.30%  8.52% 25.78% 52.70%
##   147:  20.08% 62.35% 30.72%  8.36% 25.78% 52.70%
##   148:  19.92% 61.18% 30.08%  8.28% 25.93% 52.70%
##   149:  19.77% 61.18% 30.08%  8.12% 25.63% 52.70%
##   150:  20.04% 61.18% 30.93%  8.28% 25.78% 52.70%
##   151:  19.92% 61.18% 30.30%  8.04% 26.23% 52.70%
##   152:  19.96% 61.18% 30.72%  8.12% 25.93% 52.70%
##   153:  19.96% 61.18% 30.72%  8.20% 25.93% 51.35%
##   154:  19.81% 61.18% 30.93%  8.04% 25.63% 50.00%
##   155:  19.96% 62.35% 30.72%  8.12% 25.78% 52.70%
##   156:  20.12% 61.18% 31.57%  8.20% 25.93% 51.35%
##   157:  20.31% 62.35% 31.57%  8.44% 25.93% 52.70%
##   158:  19.92% 61.18% 31.36%  7.97% 25.63% 52.70%
##   159:  20.16% 62.35% 31.14%  8.36% 25.93% 51.35%
##   160:  20.04% 62.35% 31.78%  8.04% 25.63% 51.35%
##   161:  20.23% 61.18% 31.36%  8.36% 25.78% 55.41%
##   162:  20.27% 61.18% 31.36%  8.52% 25.78% 54.05%
##   163:  20.31% 61.18% 31.57%  8.60% 25.48% 55.41%
##   164:  20.39% 61.18% 31.57%  8.60% 25.78% 55.41%
##   165:  20.31% 61.18% 31.36%  8.68% 25.63% 54.05%
##   166:  20.31% 61.18% 31.99%  8.52% 25.63% 52.70%
##   167:  20.39% 61.18% 31.78%  8.75% 25.78% 51.35%
##   168:  20.47% 60.00% 32.42%  8.83% 25.48% 52.70%
##   169:  20.27% 61.18% 31.78%  8.60% 25.48% 52.70%
##   170:  20.23% 61.18% 31.78%  8.52% 25.48% 52.70%
##   171:  20.23% 60.00% 31.99%  8.44% 25.63% 52.70%
##   172:  20.31% 60.00% 31.78%  8.52% 25.93% 52.70%
##   173:  20.31% 60.00% 32.20%  8.52% 25.63% 52.70%
##   174:  20.19% 60.00% 31.99%  8.36% 25.48% 54.05%
##   175:  20.23% 60.00% 31.99%  8.28% 25.78% 54.05%
##   176:  20.23% 60.00% 31.78%  8.44% 25.78% 52.70%
##   177:  20.23% 60.00% 32.20%  8.28% 25.78% 52.70%
##   178:  20.35% 60.00% 32.63%  8.44% 25.63% 52.70%
##   179:  20.16% 58.82% 31.99%  8.44% 25.48% 52.70%
##   180:  20.27% 60.00% 31.99%  8.60% 25.48% 52.70%
##   181:  20.31% 60.00% 31.99%  8.52% 25.78% 52.70%
##   182:  20.43% 60.00% 31.78%  8.75% 25.78% 54.05%
##   183:  20.27% 60.00% 31.36%  8.68% 25.63% 54.05%
##   184:  20.27% 57.65% 31.99%  8.60% 25.78% 52.70%
##   185:  20.47% 61.18% 31.99%  8.68% 25.78% 54.05%
##   186:  20.43% 60.00% 32.20%  8.68% 25.63% 54.05%
##   187:  20.27% 58.82% 31.78%  8.68% 25.48% 54.05%
##   188:  20.27% 60.00% 32.20%  8.52% 25.48% 52.70%
##   189:  20.27% 60.00% 31.57%  8.68% 25.63% 52.70%
##   190:  20.43% 60.00% 31.99%  8.91% 25.48% 52.70%
##   191:  20.16% 60.00% 31.36%  8.44% 25.63% 54.05%
##   192:  20.19% 58.82% 31.57%  8.44% 25.78% 54.05%
##   193:  20.08% 60.00% 31.78%  8.28% 25.34% 54.05%
##   194:  20.23% 60.00% 31.99%  8.36% 25.63% 54.05%
##   195:  20.08% 58.82% 31.36%  8.44% 25.48% 54.05%
##   196:  20.23% 58.82% 31.57%  8.60% 25.63% 54.05%
##   197:  20.08% 60.00% 31.57%  8.36% 25.34% 54.05%
##   198:  20.04% 60.00% 31.57%  8.20% 25.48% 54.05%
##   199:  20.08% 60.00% 31.78%  8.28% 25.34% 54.05%
##   200:  20.04% 60.00% 31.57%  8.20% 25.48% 54.05%
##   201:  20.31% 61.18% 32.42%  8.36% 25.63% 52.70%
##   202:  20.16% 60.00% 31.78%  8.20% 25.78% 54.05%
##   203:  20.04% 60.00% 31.78%  8.04% 25.63% 54.05%
##   204:  20.16% 60.00% 31.78%  8.28% 25.63% 54.05%
##   205:  20.27% 61.18% 31.99%  8.20% 25.93% 54.05%
##   206:  20.16% 61.18% 31.36%  8.28% 25.78% 54.05%
##   207:  19.92% 60.00% 31.36%  8.12% 25.48% 52.70%
##   208:  20.04% 60.00% 31.78%  8.28% 25.34% 52.70%
##   209:  20.04% 61.18% 31.57%  8.28% 25.34% 52.70%
##   210:  20.16% 60.00% 31.78%  8.28% 25.63% 54.05%
##   211:  20.04% 61.18% 31.78%  8.04% 25.48% 54.05%
##   212:  20.04% 61.18% 32.20%  7.97% 25.48% 52.70%
##   213:  19.96% 61.18% 31.99%  8.04% 25.19% 52.70%
##   214:  20.00% 61.18% 32.20%  7.89% 25.48% 52.70%
##   215:  19.92% 61.18% 31.57%  7.97% 25.48% 52.70%
##   216:  20.00% 61.18% 31.78%  8.04% 25.48% 52.70%
##   217:  19.92% 61.18% 31.99%  7.81% 25.48% 52.70%
##   218:  19.81% 61.18% 31.78%  7.65% 25.48% 52.70%
##   219:  20.04% 62.35% 31.99%  7.97% 25.48% 52.70%
##   220:  20.04% 61.18% 32.20%  7.89% 25.63% 52.70%
##   221:  19.88% 62.35% 31.78%  7.97% 25.04% 52.70%
##   222:  19.96% 62.35% 31.99%  7.81% 25.34% 54.05%
##   223:  19.96% 62.35% 31.99%  7.89% 25.19% 54.05%
##   224:  20.04% 62.35% 31.99%  7.81% 25.63% 54.05%
##   225:  20.08% 63.53% 31.57%  7.89% 25.78% 54.05%
##   226:  20.00% 63.53% 31.36%  8.04% 25.34% 54.05%
##   227:  20.04% 64.71% 31.36%  7.97% 25.48% 54.05%
##   228:  20.00% 63.53% 31.36%  8.04% 25.34% 54.05%
##   229:  20.04% 63.53% 31.36%  7.97% 25.63% 54.05%
##   230:  20.16% 62.35% 31.57%  8.04% 25.93% 54.05%
##   231:  20.27% 63.53% 31.78%  7.97% 26.23% 54.05%
##   232:  20.16% 63.53% 32.20%  7.89% 25.63% 54.05%
##   233:  20.19% 63.53% 32.20%  7.97% 25.63% 54.05%
##   234:  20.35% 63.53% 32.42%  8.04% 25.93% 54.05%
##   235:  20.08% 63.53% 31.36%  8.04% 25.63% 54.05%
##   236:  19.92% 63.53% 31.36%  8.04% 25.04% 54.05%
##   237:  20.16% 63.53% 31.99%  8.04% 25.48% 54.05%
##   238:  20.16% 63.53% 31.78%  8.28% 25.19% 54.05%
##   239:  20.16% 63.53% 31.99%  8.20% 25.19% 54.05%
##   240:  20.27% 63.53% 31.99%  8.20% 25.63% 54.05%
##   241:  20.23% 63.53% 31.78%  8.36% 25.34% 54.05%
##   242:  20.23% 63.53% 31.99%  8.36% 25.19% 54.05%
##   243:  20.39% 63.53% 31.57%  8.44% 25.93% 54.05%
##   244:  20.35% 63.53% 31.78%  8.44% 25.63% 54.05%
##   245:  20.08% 63.53% 31.57%  8.04% 25.48% 54.05%
##   246:  19.92% 63.53% 31.36%  7.81% 25.48% 54.05%
##   247:  20.08% 63.53% 31.57%  8.20% 25.19% 54.05%
##   248:  20.12% 63.53% 31.57%  8.20% 25.34% 54.05%
##   249:  20.12% 63.53% 31.78%  8.20% 25.19% 54.05%
##   250:  20.19% 63.53% 31.78%  8.28% 25.34% 54.05%
##   251:  20.16% 63.53% 31.99%  8.20% 25.19% 54.05%
##   252:  20.23% 63.53% 31.57%  8.52% 25.19% 54.05%
##   253:  20.00% 63.53% 31.36%  8.20% 25.04% 54.05%
##   254:  19.96% 63.53% 30.93%  8.20% 25.19% 54.05%
##   255:  20.00% 63.53% 31.36%  8.28% 24.89% 54.05%
##   256:  20.16% 63.53% 31.78%  8.12% 25.48% 54.05%
##   257:  20.19% 63.53% 31.57%  8.36% 25.34% 54.05%
##   258:  20.27% 63.53% 31.57%  8.36% 25.63% 54.05%
##   259:  20.23% 63.53% 31.57%  8.28% 25.63% 54.05%
##   260:  20.23% 63.53% 31.57%  8.44% 25.34% 54.05%
##   261:  20.16% 63.53% 32.20%  8.04% 25.34% 54.05%
##   262:  20.12% 63.53% 31.36%  8.28% 25.34% 54.05%
##   263:  20.12% 63.53% 31.14%  8.44% 25.19% 54.05%
##   264:  20.19% 62.35% 31.36%  8.44% 25.48% 54.05%
##   265:  20.00% 62.35% 30.72%  8.20% 25.63% 54.05%
##   266:  20.04% 62.35% 30.93%  8.28% 25.48% 54.05%
##   267:  20.04% 62.35% 31.36%  8.20% 25.34% 54.05%
##   268:  20.08% 62.35% 31.36%  8.12% 25.63% 54.05%
##   269:  20.12% 62.35% 31.36%  8.20% 25.63% 54.05%
##   270:  20.00% 61.18% 31.36%  8.20% 25.34% 54.05%
##   271:  19.96% 61.18% 31.14%  8.20% 25.34% 54.05%
##   272:  20.08% 61.18% 31.14%  8.28% 25.63% 54.05%
##   273:  20.08% 62.35% 31.14%  8.20% 25.63% 54.05%
##   274:  20.16% 62.35% 31.99%  8.12% 25.48% 54.05%
##   275:  19.92% 61.18% 30.93%  8.12% 25.48% 54.05%
##   276:  19.92% 61.18% 30.93%  8.12% 25.48% 54.05%
##   277:  20.00% 61.18% 31.36%  8.20% 25.34% 54.05%
##   278:  20.08% 61.18% 30.93%  8.28% 25.78% 54.05%
##   279:  20.04% 61.18% 31.36%  8.12% 25.63% 54.05%
##   280:  19.96% 61.18% 31.36%  8.12% 25.19% 55.41%
##   281:  20.08% 61.18% 31.57%  8.04% 25.63% 55.41%
##   282:  20.16% 61.18% 31.57%  8.12% 25.78% 55.41%
##   283:  20.16% 61.18% 31.78%  8.04% 25.93% 54.05%
##   284:  20.08% 61.18% 31.57%  8.12% 25.63% 54.05%
##   285:  20.27% 61.18% 31.78%  8.20% 25.93% 55.41%
##   286:  20.35% 61.18% 31.57%  8.28% 26.23% 55.41%
##   287:  20.19% 61.18% 31.57%  8.20% 25.78% 55.41%
##   288:  20.19% 60.00% 31.99%  8.12% 25.93% 54.05%
##   289:  20.31% 60.00% 31.78%  8.20% 26.23% 55.41%
##   290:  20.12% 60.00% 31.36%  8.04% 26.08% 55.41%
##   291:  20.31% 61.18% 31.36%  8.36% 26.08% 55.41%
##   292:  20.19% 62.35% 31.78%  8.12% 25.63% 55.41%
##   293:  20.35% 62.35% 31.57%  8.20% 26.23% 55.41%
##   294:  20.31% 62.35% 31.78%  8.28% 25.78% 55.41%
##   295:  20.27% 62.35% 31.78%  8.28% 25.63% 55.41%
##   296:  20.31% 62.35% 31.57%  8.20% 26.08% 55.41%
##   297:  20.23% 62.35% 31.36%  8.20% 25.93% 55.41%
##   298:  20.35% 62.35% 31.78%  8.20% 26.08% 55.41%
##   299:  20.35% 63.53% 31.99%  8.04% 26.08% 55.41%
##   300:  20.27% 62.35% 31.99%  7.97% 26.08% 55.41%
##   301:  20.23% 62.35% 31.99%  7.97% 25.93% 55.41%
##   302:  20.23% 61.18% 31.99%  8.04% 25.93% 55.41%
##   303:  20.12% 63.53% 31.36%  7.97% 25.78% 55.41%
##   304:  20.08% 61.18% 31.36%  8.20% 25.48% 55.41%
##   305:  19.96% 61.18% 31.36%  7.97% 25.48% 55.41%
##   306:  20.08% 61.18% 31.57%  8.04% 25.63% 55.41%
##   307:  20.04% 60.00% 31.36%  8.04% 25.78% 55.41%
##   308:  19.92% 61.18% 31.57%  7.73% 25.63% 55.41%
##   309:  20.04% 64.71% 31.36%  7.73% 25.78% 55.41%
##   310:  19.92% 61.18% 31.57%  7.65% 25.78% 55.41%
##   311:  19.96% 63.53% 31.57%  7.57% 25.78% 55.41%
##   312:  19.88% 63.53% 31.14%  7.65% 25.63% 55.41%
##   313:  19.92% 62.35% 30.93%  7.73% 25.93% 55.41%
##   314:  19.81% 62.35% 31.14%  7.73% 25.34% 55.41%
##   315:  19.81% 62.35% 30.93%  7.73% 25.48% 55.41%
##   316:  19.96% 64.71% 31.36%  7.73% 25.48% 55.41%
##   317:  19.73% 63.53% 30.72%  7.57% 25.48% 55.41%
##   318:  19.81% 63.53% 31.14%  7.65% 25.34% 55.41%
##   319:  19.84% 62.35% 31.14%  7.81% 25.34% 55.41%
##   320:  19.61% 61.18% 30.72%  7.65% 25.19% 55.41%
##   321:  19.69% 63.53% 30.72%  7.65% 25.19% 55.41%
##   322:  19.81% 63.53% 31.14%  7.73% 25.34% 54.05%
##   323:  19.77% 63.53% 30.72%  7.81% 25.19% 55.41%
##   324:  20.00% 63.53% 31.14%  7.97% 25.63% 54.05%
##   325:  19.96% 63.53% 31.57%  7.81% 25.48% 54.05%
##   326:  20.00% 63.53% 31.36%  7.89% 25.63% 54.05%
##   327:  19.88% 62.35% 30.93%  8.12% 25.19% 54.05%
##   328:  19.84% 62.35% 31.14%  7.73% 25.63% 54.05%
##   329:  20.00% 63.53% 31.14%  7.97% 25.63% 54.05%
##   330:  20.04% 63.53% 31.14%  7.97% 25.78% 54.05%
##   331:  19.77% 61.18% 30.93%  7.65% 25.78% 54.05%
##   332:  19.81% 61.18% 30.93%  7.65% 25.93% 54.05%
##   333:  19.81% 62.35% 31.14%  7.65% 25.63% 54.05%
##   334:  19.81% 62.35% 31.14%  7.81% 25.34% 54.05%
##   335:  19.73% 62.35% 30.93%  7.65% 25.48% 54.05%
##   336:  19.96% 62.35% 31.57%  7.65% 25.78% 55.41%
##   337:  19.96% 62.35% 31.36%  7.89% 25.48% 55.41%
##   338:  19.92% 62.35% 31.36%  7.81% 25.48% 55.41%
##   339:  19.96% 62.35% 31.14%  7.97% 25.48% 55.41%
##   340:  19.88% 62.35% 30.93%  7.97% 25.48% 54.05%
##   341:  19.77% 61.18% 30.93%  7.81% 25.34% 55.41%
##   342:  20.00% 62.35% 31.14%  8.04% 25.48% 55.41%
##   343:  19.88% 61.18% 30.93%  7.97% 25.48% 55.41%
##   344:  19.88% 61.18% 30.93%  7.89% 25.48% 56.76%
##   345:  19.96% 62.35% 30.93%  7.89% 25.63% 56.76%
##   346:  19.96% 62.35% 31.14%  7.73% 25.78% 56.76%
##   347:  20.00% 61.18% 31.14%  7.81% 25.93% 56.76%
##   348:  19.84% 60.00% 30.93%  7.81% 25.78% 55.41%
##   349:  19.88% 60.00% 31.36%  7.73% 25.78% 55.41%
##   350:  19.84% 60.00% 31.36%  7.73% 25.63% 55.41%
##   351:  19.77% 61.18% 30.93%  7.57% 25.78% 55.41%
##   352:  19.77% 60.00% 31.14%  7.57% 25.78% 55.41%
##   353:  19.69% 61.18% 30.93%  7.65% 25.34% 55.41%
##   354:  19.57% 60.00% 31.14%  7.26% 25.63% 55.41%
##   355:  19.53% 60.00% 30.72%  7.41% 25.48% 55.41%
##   356:  19.77% 61.18% 30.72%  7.65% 25.78% 55.41%
##   357:  19.69% 61.18% 31.14%  7.33% 25.78% 55.41%
##   358:  19.65% 61.18% 30.93%  7.41% 25.63% 55.41%
##   359:  19.77% 61.18% 30.93%  7.57% 25.78% 55.41%
##   360:  19.88% 62.35% 31.36%  7.65% 25.63% 55.41%
##   361:  19.69% 61.18% 31.14%  7.33% 25.78% 55.41%
##   362:  19.73% 61.18% 31.14%  7.41% 25.78% 55.41%
##   363:  19.57% 61.18% 30.72%  7.49% 25.34% 55.41%
##   364:  19.57% 61.18% 30.72%  7.57% 25.19% 55.41%
##   365:  19.61% 61.18% 30.72%  7.57% 25.34% 55.41%
##   366:  19.69% 61.18% 30.93%  7.49% 25.63% 55.41%
##   367:  19.65% 62.35% 30.51%  7.49% 25.63% 55.41%
##   368:  19.77% 62.35% 31.36%  7.49% 25.48% 55.41%
##   369:  19.73% 61.18% 30.93%  7.57% 25.63% 55.41%
##   370:  19.61% 62.35% 30.93%  7.33% 25.48% 55.41%
##   371:  19.49% 62.35% 30.93%  7.18% 25.34% 55.41%
##   372:  19.53% 62.35% 30.93%  7.26% 25.34% 55.41%
##   373:  19.46% 61.18% 30.72%  7.26% 25.34% 55.41%
##   374:  19.46% 62.35% 30.51%  7.18% 25.48% 55.41%
##   375:  19.46% 62.35% 30.30%  7.33% 25.34% 55.41%
##   376:  19.46% 61.18% 30.72%  7.33% 25.19% 55.41%
##   377:  19.53% 62.35% 30.72%  7.41% 25.19% 55.41%
##   378:  19.46% 62.35% 30.30%  7.41% 25.19% 55.41%
##   379:  19.42% 62.35% 30.51%  7.33% 25.04% 55.41%
##   380:  19.30% 61.18% 30.30%  7.33% 24.89% 55.41%
##   381:  19.46% 61.18% 30.72%  7.33% 25.19% 55.41%
##   382:  19.57% 60.00% 31.14%  7.41% 25.34% 55.41%
##   383:  19.46% 60.00% 30.93%  7.33% 25.19% 55.41%
##   384:  19.46% 60.00% 31.14%  7.26% 25.19% 55.41%
##   385:  19.49% 60.00% 30.72%  7.57% 25.19% 54.05%
##   386:  19.46% 60.00% 30.93%  7.41% 25.19% 54.05%
##   387:  19.46% 60.00% 30.93%  7.49% 25.04% 54.05%
##   388:  19.42% 60.00% 30.72%  7.49% 25.04% 54.05%
##   389:  19.49% 60.00% 31.14%  7.57% 24.89% 54.05%
##   390:  19.61% 60.00% 31.14%  7.57% 25.19% 55.41%
##   391:  19.61% 60.00% 30.93%  7.65% 25.19% 55.41%
##   392:  19.65% 60.00% 30.93%  7.73% 25.19% 55.41%
##   393:  19.61% 60.00% 31.14%  7.57% 25.19% 55.41%
##   394:  19.57% 60.00% 31.14%  7.49% 25.19% 55.41%
##   395:  19.46% 61.18% 30.72%  7.41% 25.04% 55.41%
##   396:  19.49% 60.00% 30.30%  7.49% 25.48% 55.41%
##   397:  19.53% 61.18% 30.51%  7.57% 25.19% 55.41%
##   398:  19.38% 61.18% 30.08%  7.41% 25.19% 55.41%
##   399:  19.42% 61.18% 30.08%  7.33% 25.48% 55.41%
##   400:  19.53% 62.35% 30.08%  7.41% 25.63% 55.41%
##   401:  19.57% 61.18% 30.51%  7.41% 25.63% 55.41%
##   402:  19.65% 61.18% 30.51%  7.65% 25.48% 55.41%
##   403:  19.57% 61.18% 30.72%  7.33% 25.63% 55.41%
##   404:  19.65% 61.18% 30.93%  7.49% 25.48% 55.41%
##   405:  19.49% 61.18% 30.51%  7.49% 25.19% 55.41%
##   406:  19.69% 61.18% 30.93%  7.65% 25.34% 55.41%
##   407:  19.61% 61.18% 30.30%  7.57% 25.63% 55.41%
##   408:  19.46% 61.18% 30.72%  7.33% 25.19% 55.41%
##   409:  19.53% 61.18% 30.51%  7.41% 25.48% 55.41%
##   410:  19.38% 61.18% 30.30%  7.41% 25.04% 55.41%
##   411:  19.46% 62.35% 30.72%  7.41% 24.89% 55.41%
##   412:  19.61% 62.35% 30.51%  7.41% 25.63% 55.41%
##   413:  19.65% 62.35% 30.51%  7.57% 25.48% 55.41%
##   414:  19.46% 62.35% 30.08%  7.33% 25.48% 55.41%
##   415:  19.46% 62.35% 30.08%  7.33% 25.48% 55.41%
##   416:  19.42% 62.35% 30.08%  7.41% 25.19% 55.41%
##   417:  19.61% 62.35% 30.72%  7.49% 25.34% 55.41%
##   418:  19.42% 62.35% 29.66%  7.41% 25.48% 55.41%
##   419:  19.38% 62.35% 29.87%  7.41% 25.19% 55.41%
##   420:  19.46% 62.35% 30.30%  7.33% 25.34% 55.41%
##   421:  19.42% 62.35% 30.08%  7.41% 25.19% 55.41%
##   422:  19.49% 62.35% 30.30%  7.49% 25.19% 55.41%
##   423:  19.34% 61.18% 30.08%  7.41% 25.04% 55.41%
##   424:  19.38% 62.35% 29.87%  7.41% 25.19% 55.41%
##   425:  19.38% 61.18% 30.08%  7.41% 25.19% 55.41%
##   426:  19.38% 62.35% 29.87%  7.41% 25.19% 55.41%
##   427:  19.38% 61.18% 29.87%  7.57% 25.04% 55.41%
##   428:  19.42% 62.35% 29.87%  7.49% 25.19% 55.41%
##   429:  19.26% 62.35% 29.66%  7.26% 25.19% 55.41%
##   430:  19.26% 62.35% 29.45%  7.33% 25.19% 55.41%
##   431:  19.30% 62.35% 29.87%  7.26% 25.19% 55.41%
##   432:  19.30% 62.35% 29.87%  7.26% 25.19% 55.41%
##   433:  19.18% 62.35% 29.66%  7.18% 25.19% 54.05%
##   434:  19.26% 62.35% 30.08%  7.18% 25.04% 55.41%
##   435:  19.26% 62.35% 30.08%  7.18% 25.04% 55.41%
##   436:  19.22% 62.35% 30.08%  7.10% 25.04% 55.41%
##   437:  19.26% 62.35% 29.45%  7.26% 25.34% 55.41%
##   438:  19.34% 62.35% 29.87%  7.26% 25.34% 55.41%
##   439:  19.38% 61.18% 30.08%  7.33% 25.34% 55.41%
##   440:  19.34% 62.35% 29.87%  7.26% 25.34% 55.41%
##   441:  19.26% 61.18% 29.66%  7.26% 25.34% 55.41%
##   442:  19.38% 62.35% 30.08%  7.33% 25.19% 55.41%
##   443:  19.26% 61.18% 29.87%  7.26% 25.19% 55.41%
##   444:  19.34% 62.35% 29.87%  7.26% 25.34% 55.41%
##   445:  19.30% 62.35% 29.45%  7.33% 25.34% 55.41%
##   446:  19.38% 62.35% 29.87%  7.26% 25.48% 55.41%
##   447:  19.42% 62.35% 30.08%  7.33% 25.34% 55.41%
##   448:  19.30% 62.35% 29.87%  7.33% 25.04% 55.41%
##   449:  19.34% 62.35% 29.87%  7.33% 25.19% 55.41%
##   450:  19.38% 62.35% 29.45%  7.33% 25.63% 55.41%
##   451:  19.46% 63.53% 29.66%  7.33% 25.63% 55.41%
##   452:  19.57% 62.35% 30.08%  7.41% 25.78% 55.41%
##   453:  19.42% 62.35% 30.08%  7.18% 25.63% 55.41%
##   454:  19.46% 62.35% 30.51%  7.18% 25.48% 55.41%
##   455:  19.46% 61.18% 30.72%  7.26% 25.34% 55.41%
##   456:  19.42% 61.18% 30.08%  7.26% 25.63% 55.41%
##   457:  19.38% 61.18% 29.87%  7.26% 25.63% 55.41%
##   458:  19.38% 62.35% 29.87%  7.33% 25.34% 55.41%
##   459:  19.42% 61.18% 30.08%  7.41% 25.34% 55.41%
##   460:  19.38% 62.35% 30.30%  7.18% 25.34% 55.41%
##   461:  19.42% 62.35% 30.30%  7.33% 25.19% 55.41%
##   462:  19.46% 61.18% 30.30%  7.41% 25.34% 55.41%
##   463:  19.53% 61.18% 30.51%  7.41% 25.48% 55.41%
##   464:  19.46% 61.18% 30.72%  7.26% 25.34% 55.41%
##   465:  19.49% 61.18% 30.72%  7.26% 25.48% 55.41%
##   466:  19.42% 61.18% 30.72%  7.10% 25.48% 55.41%
##   467:  19.46% 61.18% 30.51%  7.18% 25.63% 55.41%
##   468:  19.46% 60.00% 30.72%  7.18% 25.63% 55.41%
##   469:  19.61% 61.18% 30.93%  7.26% 25.78% 55.41%
##   470:  19.46% 61.18% 30.51%  7.26% 25.48% 55.41%
##   471:  19.53% 61.18% 30.93%  7.18% 25.63% 55.41%
##   472:  19.49% 61.18% 30.72%  7.26% 25.48% 55.41%
##   473:  19.57% 62.35% 30.72%  7.33% 25.48% 55.41%
##   474:  19.53% 61.18% 30.51%  7.33% 25.63% 55.41%
##   475:  19.38% 61.18% 30.08%  7.18% 25.63% 55.41%
##   476:  19.42% 61.18% 30.30%  7.18% 25.63% 55.41%
##   477:  19.57% 61.18% 30.51%  7.41% 25.63% 55.41%
##   478:  19.46% 60.00% 30.30%  7.33% 25.63% 55.41%
##   479:  19.57% 63.53% 30.08%  7.41% 25.63% 55.41%
##   480:  19.49% 61.18% 30.51%  7.26% 25.63% 55.41%
##   481:  19.57% 62.35% 30.30%  7.49% 25.48% 55.41%
##   482:  19.57% 63.53% 30.72%  7.18% 25.63% 55.41%
##   483:  19.69% 62.35% 30.72%  7.41% 25.78% 55.41%
##   484:  19.65% 62.35% 30.51%  7.33% 25.93% 55.41%
##   485:  19.42% 62.35% 30.30%  7.18% 25.48% 55.41%
##   486:  19.46% 62.35% 30.30%  7.18% 25.63% 55.41%
##   487:  19.49% 60.00% 30.72%  7.18% 25.78% 55.41%
##   488:  19.73% 61.18% 30.93%  7.41% 25.93% 55.41%
##   489:  19.61% 62.35% 30.72%  7.18% 25.93% 55.41%
##   490:  19.81% 61.18% 31.14%  7.41% 26.08% 55.41%
##   491:  19.73% 61.18% 31.14%  7.33% 25.93% 55.41%
##   492:  19.69% 62.35% 30.93%  7.33% 25.78% 55.41%
##   493:  19.61% 62.35% 30.30%  7.33% 25.93% 55.41%
##   494:  19.69% 62.35% 30.51%  7.41% 25.93% 55.41%
##   495:  19.65% 63.53% 30.51%  7.33% 25.78% 55.41%
##   496:  19.57% 62.35% 30.30%  7.26% 25.93% 55.41%
##   497:  19.53% 62.35% 30.30%  7.26% 25.78% 55.41%
##   498:  19.69% 63.53% 30.72%  7.33% 25.78% 55.41%
##   499:  19.77% 63.53% 30.72%  7.41% 25.93% 55.41%
##   500:  19.81% 63.53% 30.72%  7.41% 26.08% 55.41%
##   501:  19.77% 62.35% 30.93%  7.26% 26.23% 55.41%
##   502:  19.69% 62.35% 30.72%  7.33% 25.93% 55.41%
##   503:  19.73% 62.35% 30.93%  7.26% 26.08% 55.41%
##   504:  19.73% 62.35% 30.72%  7.33% 26.08% 55.41%
##   505:  19.65% 61.18% 30.93%  7.41% 25.63% 55.41%
##   506:  19.81% 63.53% 30.93%  7.49% 25.78% 55.41%
##   507:  19.88% 63.53% 30.93%  7.65% 25.78% 55.41%
##   508:  19.69% 62.35% 30.93%  7.49% 25.48% 55.41%
##   509:  19.69% 61.18% 31.14%  7.49% 25.48% 55.41%
##   510:  19.69% 60.00% 31.14%  7.49% 25.63% 55.41%
##   511:  19.69% 61.18% 31.14%  7.49% 25.48% 55.41%
##   512:  19.61% 61.18% 30.72%  7.49% 25.48% 55.41%
##   513:  19.73% 61.18% 30.72%  7.65% 25.63% 55.41%
##   514:  19.69% 61.18% 31.14%  7.49% 25.48% 55.41%
##   515:  19.65% 61.18% 30.72%  7.57% 25.48% 55.41%
##   516:  19.57% 61.18% 30.72%  7.26% 25.78% 55.41%
##   517:  19.69% 61.18% 30.93%  7.33% 25.93% 55.41%
##   518:  19.69% 61.18% 31.14%  7.26% 25.93% 55.41%
##   519:  19.77% 61.18% 30.93%  7.49% 25.93% 55.41%
##   520:  19.81% 61.18% 31.14%  7.57% 25.78% 55.41%
##   521:  19.84% 61.18% 30.93%  7.73% 25.78% 55.41%
##   522:  19.81% 61.18% 30.93%  7.57% 25.93% 55.41%
##   523:  19.77% 61.18% 30.93%  7.49% 25.93% 55.41%
##   524:  19.77% 61.18% 30.93%  7.49% 25.93% 55.41%
##   525:  19.77% 61.18% 30.93%  7.57% 25.78% 55.41%
##   526:  19.77% 61.18% 30.93%  7.65% 25.63% 55.41%
##   527:  19.88% 61.18% 30.93%  7.73% 25.93% 55.41%
##   528:  19.88% 61.18% 30.93%  7.73% 25.93% 55.41%
##   529:  19.84% 61.18% 30.93%  7.73% 25.78% 55.41%
##   530:  20.00% 61.18% 31.14%  7.81% 26.08% 55.41%
##   531:  19.88% 61.18% 30.93%  7.65% 26.08% 55.41%
##   532:  19.92% 61.18% 30.93%  7.81% 25.93% 55.41%
##   533:  19.88% 61.18% 31.14%  7.65% 25.93% 55.41%
##   534:  19.88% 61.18% 31.14%  7.57% 26.08% 55.41%
##   535:  19.84% 61.18% 31.14%  7.57% 25.93% 55.41%
##   536:  19.81% 61.18% 30.93%  7.49% 25.93% 56.76%
##   537:  19.81% 61.18% 30.72%  7.49% 26.08% 56.76%
##   538:  19.84% 61.18% 30.72%  7.57% 26.08% 56.76%
##   539:  19.73% 61.18% 30.30%  7.41% 26.23% 56.76%
##   540:  19.77% 61.18% 30.30%  7.57% 26.08% 56.76%
##   541:  19.81% 61.18% 30.30%  7.57% 26.23% 56.76%
##   542:  19.73% 61.18% 30.30%  7.49% 26.08% 56.76%
##   543:  19.77% 61.18% 30.51%  7.41% 26.23% 56.76%
##   544:  19.84% 61.18% 30.72%  7.57% 26.08% 56.76%
##   545:  19.69% 61.18% 30.30%  7.49% 25.93% 56.76%
##   546:  19.77% 61.18% 30.51%  7.49% 26.08% 56.76%
##   547:  19.81% 61.18% 30.93%  7.41% 26.08% 56.76%
##   548:  19.84% 61.18% 31.36%  7.33% 26.08% 56.76%
##   549:  19.77% 61.18% 31.14%  7.26% 26.08% 56.76%
##   550:  19.73% 61.18% 30.72%  7.33% 26.08% 56.76%
##   551:  19.77% 61.18% 31.14%  7.26% 26.08% 56.76%
##   552:  19.88% 61.18% 30.93%  7.57% 26.08% 56.76%
##   553:  19.88% 61.18% 31.14%  7.41% 26.23% 56.76%
##   554:  19.84% 61.18% 31.14%  7.41% 26.23% 55.41%
##   555:  19.77% 61.18% 30.93%  7.41% 25.93% 56.76%
##   556:  19.88% 61.18% 31.14%  7.41% 26.23% 56.76%
##   557:  19.81% 61.18% 30.93%  7.41% 26.08% 56.76%
##   558:  19.73% 61.18% 31.14%  7.18% 26.08% 56.76%
##   559:  19.84% 61.18% 31.36%  7.33% 26.08% 56.76%
##   560:  19.81% 61.18% 31.36%  7.26% 26.08% 56.76%
##   561:  19.77% 60.00% 31.36%  7.26% 26.08% 56.76%
##   562:  19.84% 62.35% 31.36%  7.18% 26.23% 56.76%
##   563:  19.77% 60.00% 31.14%  7.18% 26.38% 56.76%
##   564:  19.73% 60.00% 31.36%  7.26% 25.93% 56.76%
##   565:  19.69% 60.00% 31.36%  7.10% 26.08% 56.76%
##   566:  19.61% 60.00% 31.14%  7.10% 25.93% 56.76%
##   567:  19.69% 61.18% 31.14%  7.18% 25.93% 56.76%
##   568:  19.84% 61.18% 31.14%  7.33% 26.23% 56.76%
##   569:  19.88% 61.18% 31.36%  7.33% 26.23% 56.76%
##   570:  19.88% 60.00% 31.36%  7.33% 26.38% 56.76%
##   571:  19.84% 60.00% 31.14%  7.33% 26.38% 56.76%
##   572:  19.77% 60.00% 30.51%  7.33% 26.53% 56.76%
##   573:  19.69% 60.00% 30.30%  7.33% 26.38% 56.76%
##   574:  19.61% 60.00% 30.72%  7.10% 26.23% 56.76%
##   575:  19.69% 60.00% 30.93%  7.10% 26.38% 56.76%
##   576:  19.65% 60.00% 30.72%  7.10% 26.38% 56.76%
##   577:  19.73% 60.00% 30.93%  7.18% 26.38% 56.76%
##   578:  19.84% 60.00% 31.14%  7.33% 26.38% 56.76%
##   579:  19.61% 60.00% 30.72%  7.18% 26.08% 56.76%
##   580:  19.73% 60.00% 30.93%  7.26% 26.23% 56.76%
##   581:  19.57% 60.00% 30.51%  7.18% 26.08% 56.76%
##   582:  19.69% 60.00% 30.93%  7.18% 26.23% 56.76%
##   583:  19.81% 60.00% 30.72%  7.33% 26.53% 56.76%
##   584:  19.81% 60.00% 30.51%  7.41% 26.53% 56.76%
##   585:  19.81% 60.00% 30.72%  7.33% 26.53% 56.76%
##   586:  19.81% 60.00% 30.72%  7.33% 26.53% 56.76%
##   587:  19.77% 60.00% 30.72%  7.33% 26.38% 56.76%
##   588:  19.77% 60.00% 30.93%  7.26% 26.38% 56.76%
##   589:  19.81% 60.00% 30.93%  7.33% 26.38% 56.76%
##   590:  19.77% 60.00% 30.93%  7.26% 26.38% 56.76%
##   591:  19.84% 60.00% 30.93%  7.41% 26.38% 56.76%
##   592:  19.84% 60.00% 31.14%  7.26% 26.53% 56.76%
##   593:  19.84% 60.00% 30.93%  7.33% 26.53% 56.76%
##   594:  19.81% 60.00% 31.14%  7.26% 26.38% 56.76%
##   595:  19.81% 60.00% 31.14%  7.26% 26.38% 56.76%
##   596:  19.84% 60.00% 31.14%  7.26% 26.53% 56.76%
##   597:  19.84% 60.00% 31.14%  7.26% 26.53% 56.76%
##   598:  19.88% 60.00% 31.36%  7.26% 26.53% 56.76%
##   599:  19.96% 60.00% 31.78%  7.26% 26.53% 56.76%
##   600:  20.00% 60.00% 31.78%  7.33% 26.53% 56.76%
##   601:  20.00% 60.00% 31.78%  7.41% 26.38% 56.76%
##   602:  20.00% 60.00% 31.57%  7.49% 26.38% 56.76%
##   603:  19.81% 60.00% 31.57%  7.33% 25.93% 56.76%
##   604:  19.84% 60.00% 31.57%  7.33% 26.08% 56.76%
##   605:  19.84% 60.00% 31.57%  7.33% 26.08% 56.76%
##   606:  19.84% 60.00% 31.57%  7.33% 26.08% 56.76%
##   607:  19.92% 60.00% 31.57%  7.33% 26.38% 56.76%
##   608:  19.96% 60.00% 31.78%  7.33% 26.38% 56.76%
##   609:  19.96% 61.18% 31.57%  7.41% 26.23% 56.76%
##   610:  20.00% 60.00% 31.57%  7.49% 26.38% 56.76%
##   611:  20.00% 60.00% 31.78%  7.49% 26.23% 56.76%
##   612:  19.96% 60.00% 31.57%  7.41% 26.38% 56.76%
##   613:  20.04% 60.00% 31.57%  7.49% 26.53% 56.76%
##   614:  19.96% 60.00% 31.57%  7.41% 26.38% 56.76%
##   615:  19.84% 58.82% 31.36%  7.33% 26.38% 56.76%
##   616:  19.81% 60.00% 31.14%  7.26% 26.38% 56.76%
##   617:  19.81% 60.00% 31.57%  7.26% 26.08% 56.76%
##   618:  19.73% 60.00% 31.57%  7.18% 25.93% 56.76%
##   619:  19.81% 61.18% 31.57%  7.18% 26.08% 56.76%
##   620:  19.77% 62.35% 31.14%  7.26% 25.93% 56.76%
##   621:  19.73% 62.35% 31.14%  7.10% 26.08% 56.76%
##   622:  19.73% 62.35% 30.72%  7.26% 26.08% 56.76%
##   623:  19.73% 62.35% 31.36%  7.10% 25.93% 56.76%
##   624:  19.77% 63.53% 31.36%  7.10% 25.93% 56.76%
##   625:  19.92% 63.53% 31.14%  7.18% 26.53% 56.76%
##   626:  19.73% 62.35% 31.14%  7.02% 26.23% 56.76%
##   627:  19.84% 62.35% 31.36%  7.10% 26.38% 56.76%
##   628:  19.77% 62.35% 31.36%  7.10% 26.08% 56.76%
##   629:  19.69% 62.35% 30.93%  7.18% 25.93% 56.76%
##   630:  19.65% 61.18% 30.93%  7.10% 26.08% 56.76%
##   631:  19.65% 61.18% 31.36%  7.02% 25.93% 56.76%
##   632:  19.65% 61.18% 31.36%  7.02% 25.93% 56.76%
##   633:  19.65% 62.35% 31.14%  7.02% 25.93% 56.76%
##   634:  19.53% 62.35% 31.14%  7.02% 25.48% 56.76%
##   635:  19.53% 62.35% 31.14%  7.10% 25.34% 56.76%
##   636:  19.53% 62.35% 31.14%  7.02% 25.48% 56.76%
##   637:  19.77% 62.35% 30.93%  7.18% 26.23% 56.76%
##   638:  19.57% 62.35% 31.14%  7.10% 25.48% 56.76%
##   639:  19.69% 61.18% 31.36%  7.18% 25.78% 56.76%
##   640:  19.42% 62.35% 30.72%  7.02% 25.34% 56.76%
##   641:  19.49% 62.35% 31.14%  6.94% 25.48% 56.76%
##   642:  19.65% 62.35% 31.36%  7.02% 25.78% 56.76%
##   643:  19.61% 62.35% 31.36%  7.10% 25.48% 56.76%
##   644:  19.77% 62.35% 31.36%  7.18% 25.93% 56.76%
##   645:  19.77% 62.35% 31.36%  7.10% 26.08% 56.76%
##   646:  19.69% 62.35% 30.93%  7.10% 26.08% 56.76%
##   647:  19.61% 61.18% 31.14%  7.10% 25.78% 56.76%
##   648:  19.53% 61.18% 30.93%  7.10% 25.63% 56.76%
##   649:  19.42% 60.00% 30.72%  7.02% 25.63% 56.76%
##   650:  19.49% 61.18% 30.72%  7.10% 25.63% 56.76%
##   651:  19.61% 60.00% 30.93%  7.10% 26.08% 56.76%
##   652:  19.61% 60.00% 31.14%  7.02% 26.08% 56.76%
##   653:  19.53% 60.00% 31.14%  7.10% 25.63% 56.76%
##   654:  19.53% 60.00% 30.93%  7.10% 25.78% 56.76%
##   655:  19.46% 60.00% 30.93%  7.10% 25.48% 56.76%
##   656:  19.46% 60.00% 30.93%  7.10% 25.48% 56.76%
##   657:  19.42% 60.00% 31.14%  7.02% 25.34% 56.76%
##   658:  19.42% 60.00% 31.14%  6.94% 25.48% 56.76%
##   659:  19.61% 60.00% 31.14%  7.10% 25.93% 56.76%
##   660:  19.53% 60.00% 31.14%  7.10% 25.78% 55.41%
##   661:  19.61% 60.00% 31.14%  7.10% 25.93% 56.76%
##   662:  19.61% 60.00% 31.36%  7.10% 25.78% 56.76%
##   663:  19.53% 60.00% 30.93%  7.10% 25.78% 56.76%
##   664:  19.49% 60.00% 30.93%  7.02% 25.78% 56.76%
##   665:  19.53% 60.00% 31.14%  7.02% 25.78% 56.76%
##   666:  19.57% 60.00% 31.14%  7.02% 25.93% 56.76%
##   667:  19.53% 61.18% 31.14%  6.94% 25.78% 56.76%
##   668:  19.53% 61.18% 31.14%  6.94% 25.78% 56.76%
##   669:  19.53% 61.18% 31.14%  7.02% 25.78% 55.41%
##   670:  19.57% 62.35% 31.14%  7.02% 25.78% 55.41%
##   671:  19.57% 61.18% 30.93%  6.94% 26.08% 56.76%
##   672:  19.73% 61.18% 31.14%  7.18% 26.08% 56.76%
##   673:  19.77% 62.35% 31.36%  7.18% 25.93% 56.76%
##   674:  19.61% 62.35% 31.36%  7.02% 25.63% 56.76%
##   675:  19.49% 61.18% 31.14%  7.02% 25.63% 55.41%
##   676:  19.61% 61.18% 31.14%  7.10% 25.93% 55.41%
##   677:  19.69% 61.18% 30.93%  7.18% 26.23% 55.41%
##   678:  19.77% 61.18% 31.14%  7.18% 26.38% 55.41%
##   679:  19.69% 61.18% 30.93%  7.26% 26.08% 55.41%
##   680:  19.57% 61.18% 30.93%  7.18% 25.78% 55.41%
##   681:  19.61% 60.00% 31.36%  7.18% 25.78% 55.41%
##   682:  19.65% 60.00% 31.14%  7.18% 26.08% 55.41%
##   683:  19.65% 60.00% 31.57%  7.18% 25.63% 56.76%
##   684:  19.65% 60.00% 31.36%  7.10% 25.93% 56.76%
##   685:  19.57% 60.00% 31.36%  7.18% 25.63% 55.41%
##   686:  19.61% 60.00% 31.36%  7.18% 25.78% 55.41%
##   687:  19.53% 61.18% 30.72%  7.18% 25.78% 55.41%
##   688:  19.57% 61.18% 30.93%  7.18% 25.78% 55.41%
##   689:  19.65% 61.18% 31.14%  7.18% 25.93% 55.41%
##   690:  19.69% 61.18% 31.36%  7.18% 25.93% 55.41%
##   691:  19.65% 60.00% 30.93%  7.26% 26.08% 55.41%
##   692:  19.61% 61.18% 30.93%  7.02% 26.08% 56.76%
##   693:  19.57% 61.18% 30.72%  7.02% 26.08% 56.76%
##   694:  19.77% 62.35% 31.14%  7.18% 26.08% 56.76%
##   695:  19.61% 60.00% 30.93%  7.18% 25.93% 56.76%
##   696:  19.73% 61.18% 31.14%  7.18% 26.08% 56.76%
##   697:  19.65% 61.18% 30.93%  7.10% 26.08% 56.76%
##   698:  19.69% 60.00% 31.14%  7.18% 26.08% 56.76%
##   699:  19.73% 61.18% 31.14%  7.18% 26.08% 56.76%
##   700:  19.88% 62.35% 31.36%  7.26% 26.23% 56.76%
##   701:  19.81% 61.18% 31.36%  7.18% 26.23% 56.76%
##   702:  19.81% 61.18% 31.14%  7.33% 26.08% 56.76%
##   703:  19.96% 62.35% 31.57%  7.33% 26.23% 56.76%
##   704:  19.88% 62.35% 31.14%  7.33% 26.23% 56.76%
##   705:  19.77% 62.35% 30.72%  7.33% 26.08% 56.76%
##   706:  19.81% 62.35% 31.14%  7.33% 25.93% 56.76%
##   707:  19.73% 62.35% 30.93%  7.26% 26.08% 55.41%
##   708:  19.69% 61.18% 30.93%  7.26% 25.93% 56.76%
##   709:  19.73% 62.35% 30.93%  7.26% 25.93% 56.76%
##   710:  19.69% 62.35% 30.93%  7.18% 26.08% 55.41%
##   711:  19.65% 62.35% 30.93%  7.18% 25.93% 55.41%
##   712:  19.69% 61.18% 30.93%  7.18% 26.08% 56.76%
##   713:  19.77% 62.35% 31.14%  7.18% 26.08% 56.76%
##   714:  19.69% 61.18% 30.93%  7.33% 25.93% 55.41%
##   715:  19.77% 61.18% 31.14%  7.33% 25.93% 56.76%
##   716:  19.92% 62.35% 31.14%  7.41% 26.23% 56.76%
##   717:  19.77% 61.18% 31.14%  7.41% 25.93% 55.41%
##   718:  19.73% 61.18% 31.14%  7.33% 25.93% 55.41%
##   719:  19.77% 61.18% 31.57%  7.26% 25.93% 55.41%
##   720:  19.65% 61.18% 31.14%  7.33% 25.63% 55.41%
##   721:  19.57% 61.18% 30.93%  7.26% 25.63% 55.41%
##   722:  19.69% 61.18% 31.14%  7.33% 25.78% 55.41%
##   723:  19.61% 61.18% 30.93%  7.26% 25.78% 55.41%
##   724:  19.61% 61.18% 31.14%  7.18% 25.78% 55.41%
##   725:  19.65% 61.18% 30.72%  7.26% 26.08% 55.41%
##   726:  19.42% 61.18% 30.30%  7.18% 25.63% 55.41%
##   727:  19.46% 61.18% 30.30%  7.10% 25.93% 55.41%
##   728:  19.57% 61.18% 30.93%  7.18% 25.78% 55.41%
##   729:  19.61% 61.18% 30.72%  7.26% 25.93% 55.41%
##   730:  19.65% 61.18% 30.72%  7.41% 25.78% 55.41%
##   731:  19.73% 61.18% 30.93%  7.41% 25.93% 55.41%
##   732:  19.65% 61.18% 30.72%  7.33% 25.93% 55.41%
##   733:  19.65% 61.18% 30.72%  7.49% 25.63% 55.41%
##   734:  19.61% 61.18% 30.72%  7.41% 25.63% 55.41%
##   735:  19.69% 61.18% 31.14%  7.33% 25.78% 55.41%
##   736:  19.61% 61.18% 30.93%  7.33% 25.63% 55.41%
##   737:  19.61% 61.18% 30.72%  7.41% 25.63% 55.41%
##   738:  19.53% 61.18% 30.51%  7.33% 25.63% 55.41%
##   739:  19.61% 61.18% 30.72%  7.41% 25.63% 55.41%
##   740:  19.61% 61.18% 30.72%  7.33% 25.78% 55.41%
##   741:  19.65% 61.18% 31.14%  7.33% 25.63% 55.41%
##   742:  19.61% 61.18% 30.72%  7.41% 25.63% 55.41%
##   743:  19.46% 61.18% 30.30%  7.33% 25.48% 55.41%
##   744:  19.49% 61.18% 30.72%  7.26% 25.48% 55.41%
##   745:  19.46% 60.00% 30.51%  7.26% 25.63% 55.41%
##   746:  19.46% 60.00% 30.72%  7.26% 25.48% 55.41%
##   747:  19.53% 61.18% 30.93%  7.26% 25.48% 55.41%
##   748:  19.49% 61.18% 31.14%  7.18% 25.34% 55.41%
##   749:  19.42% 61.18% 30.30%  7.26% 25.48% 55.41%
##   750:  19.42% 61.18% 30.51%  7.26% 25.34% 55.41%
##   751:  19.49% 61.18% 30.93%  7.18% 25.48% 55.41%
##   752:  19.42% 61.18% 30.72%  7.10% 25.48% 55.41%
##   753:  19.46% 61.18% 30.72%  7.26% 25.34% 55.41%
##   754:  19.53% 61.18% 30.93%  7.33% 25.34% 55.41%
##   755:  19.46% 61.18% 30.93%  7.26% 25.19% 55.41%
##   756:  19.46% 61.18% 30.72%  7.26% 25.34% 55.41%
##   757:  19.46% 61.18% 30.93%  7.26% 25.19% 55.41%
##   758:  19.53% 61.18% 30.72%  7.33% 25.48% 55.41%
##   759:  19.42% 61.18% 30.72%  7.26% 25.19% 55.41%
##   760:  19.42% 61.18% 30.72%  7.26% 25.19% 55.41%
##   761:  19.46% 61.18% 30.51%  7.26% 25.48% 55.41%
##   762:  19.34% 61.18% 30.30%  7.26% 25.19% 55.41%
##   763:  19.38% 61.18% 30.30%  7.33% 25.19% 55.41%
##   764:  19.38% 61.18% 30.30%  7.33% 25.19% 55.41%
##   765:  19.38% 61.18% 30.08%  7.33% 25.34% 55.41%
##   766:  19.34% 61.18% 30.30%  7.26% 25.19% 55.41%
##   767:  19.30% 61.18% 30.30%  7.26% 25.04% 55.41%
##   768:  19.30% 61.18% 30.08%  7.26% 25.19% 55.41%
##   769:  19.30% 61.18% 30.30%  7.26% 25.04% 55.41%
##   770:  19.42% 61.18% 30.72%  7.26% 25.19% 55.41%
##   771:  19.30% 61.18% 30.08%  7.26% 25.19% 55.41%
##   772:  19.26% 61.18% 30.08%  7.26% 25.04% 55.41%
##   773:  19.42% 61.18% 30.72%  7.18% 25.34% 55.41%
##   774:  19.26% 61.18% 30.30%  7.18% 25.04% 55.41%
##   775:  19.34% 61.18% 30.51%  7.18% 25.19% 55.41%
##   776:  19.22% 61.18% 30.08%  7.18% 25.04% 55.41%
##   777:  19.22% 61.18% 30.30%  7.18% 24.89% 55.41%
##   778:  19.18% 61.18% 30.08%  7.18% 24.89% 55.41%
##   779:  19.26% 61.18% 30.30%  7.18% 25.04% 55.41%
##   780:  19.22% 61.18% 30.08%  7.18% 25.04% 55.41%
##   781:  19.18% 61.18% 29.87%  7.18% 25.04% 55.41%
##   782:  19.18% 61.18% 29.87%  7.10% 25.19% 55.41%
##   783:  19.30% 61.18% 30.08%  7.18% 25.34% 55.41%
##   784:  19.18% 61.18% 29.87%  7.10% 25.19% 55.41%
##   785:  19.22% 61.18% 30.08%  7.18% 25.04% 55.41%
##   786:  19.22% 61.18% 29.87%  7.18% 25.19% 55.41%
##   787:  19.22% 61.18% 30.08%  7.10% 25.19% 55.41%
##   788:  19.34% 61.18% 30.08%  7.18% 25.48% 55.41%
##   789:  19.26% 61.18% 30.30%  7.02% 25.34% 55.41%
##   790:  19.22% 61.18% 29.87%  7.10% 25.34% 55.41%
##   791:  19.26% 61.18% 30.08%  7.10% 25.34% 55.41%
##   792:  19.26% 61.18% 30.08%  7.02% 25.48% 55.41%
##   793:  19.38% 61.18% 30.51%  7.10% 25.48% 55.41%
##   794:  19.22% 61.18% 29.87%  7.10% 25.34% 55.41%
##   795:  19.26% 61.18% 29.87%  7.18% 25.34% 55.41%
##   796:  19.30% 61.18% 29.87%  7.18% 25.48% 55.41%
##   797:  19.38% 61.18% 30.30%  7.18% 25.48% 55.41%
##   798:  19.30% 61.18% 29.87%  7.18% 25.48% 55.41%
##   799:  19.34% 61.18% 30.30%  7.02% 25.63% 55.41%
##   800:  19.26% 61.18% 30.30%  7.02% 25.34% 55.41%
##   801:  19.42% 61.18% 30.30%  7.18% 25.63% 55.41%
##   802:  19.38% 61.18% 30.30%  7.18% 25.48% 55.41%
##   803:  19.30% 61.18% 29.87%  7.18% 25.48% 55.41%
##   804:  19.34% 61.18% 29.87%  7.18% 25.63% 55.41%
##   805:  19.38% 61.18% 30.30%  7.10% 25.63% 55.41%
##   806:  19.38% 61.18% 30.08%  7.18% 25.63% 55.41%
##   807:  19.38% 61.18% 30.08%  7.18% 25.63% 55.41%
##   808:  19.38% 61.18% 30.08%  7.26% 25.48% 55.41%
##   809:  19.42% 61.18% 30.08%  7.26% 25.63% 55.41%
##   810:  19.38% 61.18% 30.08%  7.26% 25.48% 55.41%
##   811:  19.26% 61.18% 30.08%  7.10% 25.34% 55.41%
##   812:  19.30% 61.18% 30.08%  7.18% 25.34% 55.41%
##   813:  19.34% 61.18% 30.30%  7.18% 25.34% 55.41%
##   814:  19.30% 61.18% 30.08%  7.18% 25.34% 55.41%
##   815:  19.30% 61.18% 30.08%  7.18% 25.34% 55.41%
##   816:  19.34% 61.18% 30.08%  7.33% 25.19% 55.41%
##   817:  19.38% 61.18% 30.30%  7.26% 25.34% 55.41%
##   818:  19.49% 61.18% 30.51%  7.33% 25.48% 55.41%
##   819:  19.46% 61.18% 30.51%  7.26% 25.48% 55.41%
##   820:  19.46% 61.18% 30.30%  7.33% 25.48% 55.41%
##   821:  19.42% 61.18% 30.30%  7.26% 25.48% 55.41%
##   822:  19.42% 61.18% 30.30%  7.33% 25.34% 55.41%
##   823:  19.46% 61.18% 30.08%  7.33% 25.63% 55.41%
##   824:  19.49% 61.18% 30.30%  7.26% 25.78% 55.41%
##   825:  19.38% 61.18% 30.08%  7.18% 25.63% 55.41%
##   826:  19.38% 61.18% 30.08%  7.18% 25.63% 55.41%
##   827:  19.38% 61.18% 30.30%  7.18% 25.48% 55.41%
##   828:  19.42% 61.18% 30.08%  7.26% 25.63% 55.41%
##   829:  19.42% 61.18% 30.08%  7.18% 25.78% 55.41%
##   830:  19.49% 61.18% 30.08%  7.33% 25.78% 55.41%
##   831:  19.46% 61.18% 30.08%  7.26% 25.78% 55.41%
##   832:  19.46% 61.18% 30.30%  7.18% 25.78% 55.41%
##   833:  19.46% 61.18% 29.87%  7.41% 25.63% 55.41%
##   834:  19.46% 61.18% 30.30%  7.26% 25.63% 55.41%
##   835:  19.46% 61.18% 30.08%  7.33% 25.63% 55.41%
##   836:  19.42% 61.18% 29.87%  7.33% 25.63% 55.41%
##   837:  19.49% 61.18% 30.08%  7.26% 25.93% 55.41%
##   838:  19.57% 61.18% 29.87%  7.41% 26.08% 55.41%
##   839:  19.53% 61.18% 30.51%  7.18% 25.93% 55.41%
##   840:  19.57% 61.18% 30.51%  7.26% 25.93% 55.41%
##   841:  19.42% 61.18% 29.87%  7.26% 25.78% 55.41%
##   842:  19.53% 61.18% 30.30%  7.33% 25.78% 55.41%
##   843:  19.49% 61.18% 30.08%  7.33% 25.78% 55.41%
##   844:  19.49% 60.00% 30.08%  7.33% 25.93% 55.41%
##   845:  19.49% 60.00% 30.30%  7.41% 25.63% 55.41%
##   846:  19.49% 60.00% 30.08%  7.41% 25.78% 55.41%
##   847:  19.46% 60.00% 30.08%  7.41% 25.63% 55.41%
##   848:  19.49% 60.00% 30.08%  7.49% 25.63% 55.41%
##   849:  19.49% 61.18% 30.30%  7.33% 25.63% 55.41%
##   850:  19.57% 61.18% 30.30%  7.41% 25.78% 55.41%
##   851:  19.53% 61.18% 30.30%  7.33% 25.78% 55.41%
##   852:  19.61% 61.18% 30.51%  7.33% 25.93% 55.41%
##   853:  19.65% 61.18% 30.72%  7.33% 25.93% 55.41%
##   854:  19.61% 61.18% 30.72%  7.33% 25.78% 55.41%
##   855:  19.61% 62.35% 30.72%  7.41% 25.48% 55.41%
##   856:  19.57% 62.35% 30.51%  7.33% 25.63% 55.41%
##   857:  19.61% 62.35% 30.51%  7.41% 25.63% 55.41%
##   858:  19.61% 62.35% 30.51%  7.49% 25.48% 55.41%
##   859:  19.61% 62.35% 30.51%  7.49% 25.48% 55.41%
##   860:  19.57% 62.35% 30.51%  7.41% 25.48% 55.41%
##   861:  19.61% 62.35% 30.72%  7.41% 25.48% 55.41%
##   862:  19.65% 62.35% 30.72%  7.49% 25.48% 55.41%
##   863:  19.65% 62.35% 30.72%  7.49% 25.48% 55.41%
##   864:  19.69% 62.35% 30.72%  7.49% 25.63% 55.41%
##   865:  19.69% 62.35% 30.72%  7.49% 25.63% 55.41%
##   866:  19.73% 62.35% 30.72%  7.57% 25.63% 55.41%
##   867:  19.61% 62.35% 30.51%  7.41% 25.63% 55.41%
##   868:  19.69% 62.35% 30.51%  7.49% 25.78% 55.41%
##   869:  19.61% 62.35% 30.72%  7.33% 25.63% 55.41%
##   870:  19.61% 62.35% 30.51%  7.41% 25.63% 55.41%
##   871:  19.57% 62.35% 30.72%  7.41% 25.34% 55.41%
##   872:  19.65% 62.35% 30.51%  7.33% 25.93% 55.41%
##   873:  19.61% 62.35% 30.51%  7.33% 25.78% 55.41%
##   874:  19.61% 62.35% 30.51%  7.33% 25.78% 55.41%
##   875:  19.65% 62.35% 30.51%  7.41% 25.78% 55.41%
##   876:  19.57% 62.35% 30.51%  7.26% 25.78% 55.41%
##   877:  19.57% 62.35% 30.51%  7.26% 25.78% 55.41%
##   878:  19.53% 62.35% 30.51%  7.26% 25.63% 55.41%
##   879:  19.61% 62.35% 30.51%  7.33% 25.78% 55.41%
##   880:  19.49% 61.18% 30.51%  7.18% 25.78% 55.41%
##   881:  19.57% 62.35% 30.51%  7.26% 25.78% 55.41%
##   882:  19.53% 62.35% 30.51%  7.26% 25.63% 55.41%
##   883:  19.49% 61.18% 30.51%  7.18% 25.78% 55.41%
##   884:  19.49% 62.35% 30.51%  7.18% 25.63% 55.41%
##   885:  19.46% 61.18% 30.51%  7.18% 25.63% 55.41%
##   886:  19.42% 61.18% 30.51%  7.10% 25.63% 55.41%
##   887:  19.46% 61.18% 30.51%  7.18% 25.63% 55.41%
##   888:  19.46% 62.35% 30.51%  7.02% 25.78% 55.41%
##   889:  19.46% 62.35% 30.51%  7.02% 25.78% 55.41%
##   890:  19.46% 62.35% 30.51%  7.02% 25.78% 55.41%
##   891:  19.34% 61.18% 30.51%  6.94% 25.63% 55.41%
##   892:  19.38% 61.18% 30.51%  7.02% 25.63% 55.41%
##   893:  19.46% 61.18% 30.30%  7.10% 25.93% 55.41%
##   894:  19.42% 61.18% 30.51%  7.02% 25.78% 55.41%
##   895:  19.46% 61.18% 30.51%  7.02% 25.93% 55.41%
##   896:  19.53% 61.18% 30.51%  7.18% 25.93% 55.41%
##   897:  19.46% 61.18% 30.51%  7.02% 25.93% 55.41%
##   898:  19.38% 61.18% 30.51%  6.94% 25.78% 55.41%
##   899:  19.49% 61.18% 30.51%  7.18% 25.78% 55.41%
##   900:  19.53% 61.18% 30.51%  7.18% 25.93% 55.41%
##   901:  19.42% 61.18% 30.51%  7.02% 25.78% 55.41%
##   902:  19.49% 61.18% 30.51%  7.18% 25.78% 55.41%
##   903:  19.42% 61.18% 30.51%  7.02% 25.78% 55.41%
##   904:  19.42% 61.18% 30.51%  7.02% 25.78% 55.41%
##   905:  19.42% 61.18% 30.51%  7.02% 25.78% 55.41%
##   906:  19.46% 61.18% 30.51%  7.10% 25.78% 55.41%
##   907:  19.46% 61.18% 30.51%  7.26% 25.63% 54.05%
##   908:  19.46% 61.18% 30.51%  7.18% 25.78% 54.05%
##   909:  19.53% 61.18% 30.51%  7.18% 25.93% 55.41%
##   910:  19.49% 61.18% 30.51%  7.10% 25.93% 55.41%
##   911:  19.46% 61.18% 30.30%  7.10% 25.93% 55.41%
##   912:  19.46% 61.18% 30.30%  7.26% 25.63% 55.41%
##   913:  19.42% 61.18% 30.30%  7.18% 25.78% 54.05%
##   914:  19.38% 61.18% 30.30%  7.10% 25.78% 54.05%
##   915:  19.38% 61.18% 30.30%  7.18% 25.63% 54.05%
##   916:  19.49% 61.18% 30.30%  7.26% 25.78% 55.41%
##   917:  19.30% 61.18% 30.08%  7.10% 25.63% 54.05%
##   918:  19.30% 61.18% 30.30%  7.10% 25.48% 54.05%
##   919:  19.42% 61.18% 30.51%  7.10% 25.78% 54.05%
##   920:  19.42% 62.35% 30.51%  7.10% 25.63% 54.05%
##   921:  19.42% 62.35% 30.30%  7.18% 25.63% 54.05%
##   922:  19.38% 61.18% 30.30%  7.18% 25.63% 54.05%
##   923:  19.30% 61.18% 30.30%  7.10% 25.48% 54.05%
##   924:  19.42% 61.18% 30.51%  7.26% 25.48% 54.05%
##   925:  19.34% 61.18% 30.30%  7.18% 25.48% 54.05%
##   926:  19.26% 61.18% 30.08%  7.18% 25.34% 54.05%
##   927:  19.22% 61.18% 30.08%  7.10% 25.34% 54.05%
##   928:  19.34% 61.18% 30.51%  7.10% 25.48% 54.05%
##   929:  19.34% 61.18% 30.51%  7.18% 25.34% 54.05%
##   930:  19.30% 61.18% 30.30%  7.10% 25.48% 54.05%
##   931:  19.26% 61.18% 30.30%  7.10% 25.34% 54.05%
##   932:  19.22% 61.18% 30.30%  7.10% 25.19% 54.05%
##   933:  19.22% 61.18% 30.30%  7.10% 25.19% 54.05%
##   934:  19.26% 61.18% 30.30%  7.10% 25.34% 54.05%
##   935:  19.34% 62.35% 30.72%  7.02% 25.34% 54.05%
##   936:  19.34% 62.35% 30.72%  7.02% 25.34% 54.05%
##   937:  19.30% 62.35% 30.72%  6.94% 25.34% 54.05%
##   938:  19.30% 62.35% 30.30%  7.10% 25.34% 54.05%
##   939:  19.30% 62.35% 30.30%  7.10% 25.34% 54.05%
##   940:  19.26% 62.35% 30.30%  7.02% 25.34% 54.05%
##   941:  19.26% 62.35% 30.30%  7.02% 25.34% 54.05%
##   942:  19.26% 62.35% 30.30%  7.02% 25.34% 54.05%
##   943:  19.34% 62.35% 30.51%  7.02% 25.48% 54.05%
##   944:  19.34% 62.35% 30.51%  6.94% 25.63% 54.05%
##   945:  19.30% 62.35% 30.30%  7.02% 25.48% 54.05%
##   946:  19.30% 62.35% 30.51%  6.94% 25.48% 54.05%
##   947:  19.30% 62.35% 30.30%  7.02% 25.48% 54.05%
##   948:  19.26% 62.35% 30.08%  7.02% 25.48% 54.05%
##   949:  19.30% 62.35% 30.30%  7.02% 25.48% 54.05%
##   950:  19.26% 62.35% 30.30%  6.94% 25.63% 52.70%
##   951:  19.22% 62.35% 30.08%  7.02% 25.34% 54.05%
##   952:  19.22% 62.35% 30.08%  7.02% 25.34% 54.05%
##   953:  19.22% 62.35% 30.08%  7.02% 25.34% 54.05%
##   954:  19.30% 62.35% 30.08%  7.02% 25.48% 55.41%
##   955:  19.26% 62.35% 30.30%  7.02% 25.34% 54.05%
##   956:  19.38% 62.35% 30.30%  7.10% 25.48% 55.41%
##   957:  19.38% 62.35% 30.08%  7.18% 25.48% 55.41%
##   958:  19.30% 61.18% 30.08%  7.10% 25.48% 55.41%
##   959:  19.34% 62.35% 30.08%  7.10% 25.48% 55.41%
##   960:  19.38% 62.35% 30.08%  7.18% 25.48% 55.41%
##   961:  19.34% 61.18% 30.08%  7.18% 25.48% 55.41%
##   962:  19.42% 62.35% 30.30%  7.10% 25.63% 55.41%
##   963:  19.38% 61.18% 30.51%  7.10% 25.63% 54.05%
##   964:  19.46% 62.35% 30.51%  7.10% 25.63% 55.41%
##   965:  19.26% 61.18% 30.51%  6.94% 25.48% 54.05%
##   966:  19.30% 62.35% 30.51%  6.94% 25.48% 54.05%
##   967:  19.34% 62.35% 30.51%  6.94% 25.48% 55.41%
##   968:  19.26% 61.18% 30.51%  6.94% 25.34% 55.41%
##   969:  19.26% 60.00% 30.51%  6.94% 25.48% 55.41%
##   970:  19.30% 61.18% 30.51%  6.94% 25.48% 55.41%
##   971:  19.22% 61.18% 30.30%  6.94% 25.34% 55.41%
##   972:  19.26% 61.18% 30.51%  6.94% 25.34% 55.41%
##   973:  19.26% 62.35% 30.30%  6.94% 25.34% 55.41%
##   974:  19.22% 61.18% 30.30%  6.94% 25.34% 55.41%
##   975:  19.26% 61.18% 30.30%  6.94% 25.48% 55.41%
##   976:  19.30% 61.18% 30.30%  7.02% 25.48% 55.41%
##   977:  19.26% 61.18% 30.30%  7.02% 25.34% 55.41%
##   978:  19.22% 61.18% 30.30%  6.94% 25.34% 55.41%
##   979:  19.22% 61.18% 30.30%  6.94% 25.34% 55.41%
##   980:  19.22% 61.18% 30.30%  6.94% 25.34% 55.41%
##   981:  19.30% 61.18% 30.30%  7.02% 25.48% 55.41%
##   982:  19.26% 61.18% 30.30%  6.94% 25.48% 55.41%
##   983:  19.26% 61.18% 30.30%  6.94% 25.48% 55.41%
##   984:  19.26% 61.18% 30.30%  6.94% 25.48% 55.41%
##   985:  19.26% 61.18% 30.30%  6.94% 25.48% 55.41%
##   986:  19.26% 61.18% 30.51%  6.94% 25.34% 55.41%
##   987:  19.18% 61.18% 30.30%  6.86% 25.34% 55.41%
##   988:  19.18% 61.18% 30.30%  6.94% 25.19% 55.41%
##   989:  19.26% 61.18% 30.30%  6.94% 25.48% 55.41%
##   990:  19.30% 61.18% 30.30%  7.02% 25.48% 55.41%
##   991:  19.18% 61.18% 30.30%  6.94% 25.19% 55.41%
##   992:  19.30% 61.18% 30.51%  6.94% 25.48% 55.41%
##   993:  19.26% 61.18% 30.51%  6.94% 25.34% 55.41%
##   994:  19.18% 61.18% 30.30%  6.78% 25.48% 55.41%
##   995:  19.26% 61.18% 30.51%  6.86% 25.48% 55.41%
##   996:  19.22% 61.18% 30.30%  6.86% 25.48% 55.41%
##   997:  19.18% 61.18% 30.30%  6.78% 25.48% 55.41%
##   998:  19.14% 61.18% 30.30%  6.78% 25.34% 55.41%
##   999:  19.14% 61.18% 30.30%  6.78% 25.34% 55.41%
##  1000:  19.14% 61.18% 30.30%  6.78% 25.34% 55.41%
test2 <- predict(model_rf2, newdata = test)
table(test2, test$Hospital.overall.rating)
##      
## test2   1   2   3   4   5
##     1  13   6   0   0   0
##     2  19 136  16   0   0
##     3   0  70 464  61   0
##     4   0   0  24 232  23
##     5   0   0   0   0  14
summary(model_rf2)
##                 Length Class  Mode     
## call                8  -none- call     
## type                1  -none- character
## predicted        2570  factor numeric  
## err.rate         6000  -none- numeric  
## confusion          30  -none- numeric  
## votes           12850  matrix numeric  
## oob.times        2570  -none- numeric  
## classes             5  -none- character
## importance         53  -none- numeric  
## importanceSD        0  -none- NULL     
## localImportance     0  -none- NULL     
## proximity           0  -none- NULL     
## ntree               1  -none- numeric  
## mtry                1  -none- numeric  
## forest             14  -none- list     
## y                2570  factor numeric  
## test                0  -none- NULL     
## inbag               0  -none- NULL     
## terms               3  terms  call
conf_matrix2 <- confusionMatrix(test2, test$Hospital.overall.rating, positive = "Yes")
conf_matrix2
## Confusion Matrix and Statistics
## 
##           Reference
## Prediction   1   2   3   4   5
##          1  13   6   0   0   0
##          2  19 136  16   0   0
##          3   0  70 464  61   0
##          4   0   0  24 232  23
##          5   0   0   0   0  14
## 
## Overall Statistics
##                                           
##                Accuracy : 0.7968          
##                  95% CI : (0.7716, 0.8205)
##     No Information Rate : 0.4675          
##     P-Value [Acc > NIR] : < 2.2e-16       
##                                           
##                   Kappa : 0.6823          
##                                           
##  Mcnemar's Test P-Value : NA              
## 
## Statistics by Class:
## 
##                      Class: 1 Class: 2 Class: 3 Class: 4 Class: 5
## Sensitivity           0.40625   0.6415   0.9206   0.7918  0.37838
## Specificity           0.99426   0.9596   0.7718   0.9401  1.00000
## Pos Pred Value        0.68421   0.7953   0.7798   0.8315  1.00000
## Neg Pred Value        0.98206   0.9162   0.9172   0.9237  0.97838
## Prevalence            0.02968   0.1967   0.4675   0.2718  0.03432
## Detection Rate        0.01206   0.1262   0.4304   0.2152  0.01299
## Detection Prevalence  0.01763   0.1586   0.5519   0.2588  0.01299
## Balanced Accuracy     0.70026   0.8005   0.8462   0.8660  0.68919
# Confusion Matrix and Statistics
#
#                 Reference
# Prediction   1   2   3   4   5
#          1  13   6   0   0   0
#          2  19 136  16   0   0
#          3   0  70 464  61   0
#          4   0   0  24 232  23
#          5   0   0   0   0  14
#
# Overall Statistics
#
# Accuracy : 0.7968
# 95% CI : (0.7716, 0.8205)
# No Information Rate : 0.4675
# P-Value [Acc > NIR] : < 2.2e-16
#
# Kappa : 0.6823
# Mcnemar's Test P-Value : NA
#
# Statistics by Class:
#
#                        Class: 1 Class: 2 Class: 3 Class: 4 Class: 5
# Sensitivity           0.40625   0.6415   0.9206   0.7918  0.37838
# Specificity           0.99426   0.9596   0.7718   0.9401  1.00000
# Pos Pred Value        0.68421   0.7953   0.7798   0.8315  1.00000
# Neg Pred Value        0.98206   0.9162   0.9172   0.9237  0.97838
# Prevalence            0.02968   0.1967   0.4675   0.2718  0.03432
# Detection Rate        0.01206   0.1262   0.4304   0.2152  0.01299
# Detection Prevalence  0.01763   0.1586   0.5519   0.2588  0.01299
# Balanced Accuracy     0.70026   0.8005   0.8462   0.8660  0.68919

# Accuracy is 79.7%

model_rf3 <- randomForest(Hospital.overall.rating ~ ., data = train, promiximity = FALSE, ntree = 1500, mtry = 20, do.trace = TRUE, na.action = na.omit)
## ntree      OOB      1      2      3      4      5
##     1:  40.35% 62.07% 50.00% 34.98% 38.36% 68.97%
##     2:  41.89% 54.90% 51.03% 37.05% 42.02% 52.63%
##     3:  39.64% 45.59% 49.06% 35.18% 38.74% 54.72%
##     4:  37.63% 41.33% 45.54% 33.21% 37.41% 59.32%
##     5:  36.82% 46.84% 45.73% 31.62% 36.91% 56.06%
##     6:  36.08% 53.57% 43.95% 29.77% 37.46% 58.33%
##     7:  35.02% 51.19% 45.18% 28.17% 36.26% 55.56%
##     8:  35.05% 42.86% 46.44% 27.28% 37.67% 60.81%
##     9:  33.84% 47.62% 44.54% 25.67% 37.27% 56.76%
##    10:  33.95% 48.24% 45.53% 25.42% 37.25% 58.11%
##    11:  32.73% 49.41% 42.89% 23.87% 37.65% 55.41%
##    12:  31.55% 44.71% 43.10% 22.19% 36.94% 54.05%
##    13:  30.87% 45.88% 42.04% 21.33% 36.42% 55.41%
##    14:  30.70% 43.53% 42.80% 21.72% 35.07% 52.70%
##    15:  29.79% 47.06% 40.47% 20.99% 34.18% 52.70%
##    16:  29.77% 47.06% 39.62% 21.06% 34.58% 52.70%
##    17:  28.05% 45.88% 36.86% 19.79% 32.49% 52.70%
##    18:  27.94% 45.88% 37.92% 19.01% 32.49% 55.41%
##    19:  28.13% 48.24% 37.92% 18.93% 32.94% 56.76%
##    20:  27.74% 49.41% 38.35% 17.90% 32.79% 58.11%
##    21:  27.16% 47.06% 37.71% 18.22% 31.00% 55.41%
##    22:  26.81% 47.06% 37.92% 17.19% 31.45% 55.41%
##    23:  26.34% 49.41% 37.08% 16.48% 31.59% 52.70%
##    24:  26.50% 51.76% 37.29% 17.03% 30.85% 51.35%
##    25:  26.46% 55.29% 37.08% 16.09% 31.45% 58.11%
##    26:  25.60% 51.76% 34.96% 16.48% 29.66% 55.41%
##    27:  25.72% 49.41% 36.65% 15.69% 30.85% 54.05%
##    28:  24.63% 48.24% 35.59% 14.67% 29.81% 51.35%
##    29:  24.47% 49.41% 32.63% 14.91% 30.25% 55.41%
##    30:  24.12% 50.59% 34.11% 13.64% 30.10% 55.41%
##    31:  24.16% 49.41% 35.59% 13.88% 29.21% 52.70%
##    32:  23.85% 51.76% 32.20% 13.88% 29.81% 55.41%
##    33:  24.09% 52.94% 32.84% 13.96% 29.51% 59.46%
##    34:  23.85% 49.41% 33.05% 13.56% 29.81% 58.11%
##    35:  23.70% 51.76% 33.05% 13.64% 28.91% 56.76%
##    36:  23.07% 52.94% 32.20% 12.07% 29.96% 56.76%
##    37:  23.07% 52.94% 33.05% 12.07% 29.36% 56.76%
##    38:  23.04% 54.12% 31.78% 12.07% 29.66% 59.46%
##    39:  22.72% 51.76% 31.99% 12.07% 28.91% 56.76%
##    40:  22.96% 51.76% 33.26% 12.30% 28.46% 56.76%
##    41:  22.45% 51.76% 32.20% 11.75% 28.46% 55.41%
##    42:  22.80% 54.12% 32.20% 12.30% 28.32% 56.76%
##    43:  22.65% 51.76% 33.05% 11.99% 28.02% 56.76%
##    44:  22.65% 50.59% 32.20% 12.70% 27.57% 55.41%
##    45:  22.76% 51.76% 31.99% 12.85% 27.72% 55.41%
##    46:  22.45% 52.94% 31.57% 12.07% 28.17% 55.41%
##    47:  22.30% 52.94% 31.78% 11.99% 27.42% 56.76%
##    48:  21.95% 52.94% 30.08% 11.67% 28.02% 55.41%
##    49:  22.06% 54.12% 30.93% 11.44% 27.87% 58.11%
##    50:  22.26% 54.12% 32.42% 11.28% 27.87% 58.11%
##    51:  22.18% 54.12% 32.63% 11.28% 27.87% 54.05%
##    52:  22.10% 54.12% 33.47% 11.12% 27.27% 54.05%
##    53:  22.49% 55.29% 33.26% 11.51% 27.87% 55.41%
##    54:  22.30% 54.12% 32.63% 11.83% 27.12% 55.41%
##    55:  21.87% 55.29% 32.20% 11.20% 26.97% 54.05%
##    56:  22.06% 57.65% 33.05% 11.04% 26.97% 55.41%
##    57:  22.02% 57.65% 31.57% 11.12% 27.72% 55.41%
##    58:  21.83% 55.29% 31.78% 11.04% 27.27% 55.41%
##    59:  21.63% 51.76% 32.20% 10.96% 26.83% 55.41%
##    60:  21.75% 56.47% 31.99% 10.73% 27.27% 55.41%
##    61:  21.83% 52.94% 32.63% 10.96% 27.12% 55.41%
##    62:  21.56% 54.12% 32.63% 10.65% 26.53% 55.41%
##    63:  21.83% 55.29% 32.84% 11.04% 26.53% 55.41%
##    64:  21.83% 52.94% 33.05% 10.73% 27.27% 55.41%
##    65:  21.91% 52.94% 34.53% 10.65% 26.83% 54.05%
##    66:  21.71% 52.94% 33.90% 10.41% 26.83% 55.41%
##    67:  21.91% 55.29% 34.75% 10.49% 26.68% 54.05%
##    68:  21.79% 52.94% 34.11% 10.73% 26.53% 54.05%
##    69:  21.67% 52.94% 33.47% 10.65% 26.53% 55.41%
##    70:  21.60% 48.24% 33.47% 10.41% 27.27% 55.41%
##    71:  21.67% 50.59% 33.26% 10.96% 26.38% 55.41%
##    72:  21.98% 54.12% 33.26% 10.88% 27.27% 55.41%
##    73:  21.87% 52.94% 33.05% 10.73% 27.42% 55.41%
##    74:  21.91% 51.76% 33.26% 10.96% 27.27% 54.05%
##    75:  22.10% 52.94% 34.32% 10.65% 27.57% 55.41%
##    76:  21.91% 54.12% 33.26% 10.73% 27.27% 55.41%
##    77:  21.32% 52.94% 33.26% 10.09% 26.53% 54.05%
##    78:  21.48% 55.29% 33.47% 10.17% 26.38% 55.41%
##    79:  21.40% 56.47% 32.42% 10.17% 26.83% 54.05%
##    80:  21.36% 55.29% 32.42%  9.94% 27.27% 54.05%
##    81:  21.44% 60.00% 32.63%  9.94% 26.97% 52.70%
##    82:  21.56% 58.82% 33.05%  9.94% 27.12% 54.05%
##    83:  21.28% 56.47% 32.84%  9.54% 27.27% 54.05%
##    84:  21.48% 56.47% 33.26%  9.86% 27.12% 54.05%
##    85:  21.13% 57.65% 32.20%  9.54% 26.97% 54.05%
##    86:  21.05% 56.47% 31.78%  9.38% 27.42% 54.05%
##    87:  21.09% 58.82% 31.99%  9.31% 27.57% 51.35%
##    88:  21.17% 56.47% 32.63%  9.38% 27.42% 52.70%
##    89:  21.05% 54.12% 31.57%  9.54% 27.87% 51.35%
##    90:  21.09% 54.12% 32.63%  9.23% 28.02% 50.00%
##    91:  20.93% 56.47% 31.78%  9.23% 27.72% 50.00%
##    92:  21.32% 56.47% 32.42%  9.62% 28.02% 50.00%
##    93:  21.05% 57.65% 31.99%  9.46% 27.42% 50.00%
##    94:  20.89% 57.65% 31.78%  9.31% 27.27% 50.00%
##    95:  21.09% 57.65% 31.78%  9.62% 27.27% 51.35%
##    96:  20.86% 57.65% 32.42%  9.31% 26.68% 50.00%
##    97:  20.86% 55.29% 33.05%  9.15% 26.68% 51.35%
##    98:  21.09% 57.65% 32.42%  9.62% 26.83% 51.35%
##    99:  20.74% 56.47% 32.20%  8.99% 26.97% 51.35%
##   100:  20.89% 58.82% 31.99%  9.23% 26.97% 51.35%
##   101:  20.82% 58.82% 32.42%  9.15% 26.53% 51.35%
##   102:  20.74% 56.47% 31.57%  9.46% 26.53% 51.35%
##   103:  20.51% 56.47% 31.57%  8.75% 26.97% 51.35%
##   104:  20.58% 57.65% 31.36%  9.07% 26.53% 52.70%
##   105:  20.78% 57.65% 31.57%  9.15% 26.97% 52.70%
##   106:  20.43% 56.47% 31.36%  8.68% 26.83% 52.70%
##   107:  20.78% 57.65% 31.57%  9.07% 27.12% 52.70%
##   108:  20.74% 57.65% 31.36%  8.83% 27.57% 52.70%
##   109:  20.97% 60.00% 31.78%  9.23% 27.12% 52.70%
##   110:  20.62% 57.65% 30.93%  9.23% 26.68% 52.70%
##   111:  20.82% 56.47% 31.78%  9.38% 26.83% 51.35%
##   112:  20.74% 58.82% 31.78%  8.99% 26.97% 51.35%
##   113:  20.97% 57.65% 31.36%  9.54% 27.27% 51.35%
##   114:  20.89% 57.65% 31.36%  9.31% 27.42% 51.35%
##   115:  20.66% 57.65% 30.72%  9.31% 26.97% 51.35%
##   116:  20.86% 57.65% 31.14%  9.15% 27.72% 51.35%
##   117:  20.89% 58.82% 31.14%  9.38% 27.27% 51.35%
##   118:  20.54% 58.82% 31.14%  8.91% 26.68% 52.70%
##   119:  20.66% 57.65% 30.72%  9.23% 26.97% 52.70%
##   120:  20.19% 58.82% 29.87%  8.75% 26.53% 52.70%
##   121:  20.31% 57.65% 30.30%  8.75% 26.83% 52.70%
##   122:  20.31% 57.65% 30.72%  8.75% 26.38% 54.05%
##   123:  20.31% 57.65% 29.87%  8.91% 26.68% 54.05%
##   124:  20.31% 55.29% 30.93%  8.99% 26.08% 54.05%
##   125:  20.23% 55.29% 30.30%  8.91% 26.53% 52.70%
##   126:  20.04% 55.29% 30.51%  8.60% 26.23% 52.70%
##   127:  20.23% 56.47% 30.30%  8.83% 26.53% 52.70%
##   128:  20.58% 56.47% 31.36%  8.68% 27.27% 54.05%
##   129:  20.27% 56.47% 31.14%  8.60% 26.53% 52.70%
##   130:  20.27% 55.29% 30.51%  8.68% 26.83% 54.05%
##   131:  20.16% 55.29% 31.14%  8.60% 26.23% 52.70%
##   132:  20.16% 56.47% 31.36%  8.52% 25.93% 54.05%
##   133:  20.23% 58.82% 30.93%  8.52% 26.23% 54.05%
##   134:  20.27% 57.65% 30.72%  8.68% 26.68% 51.35%
##   135:  20.47% 56.47% 31.57%  8.83% 26.38% 54.05%
##   136:  20.39% 57.65% 31.57%  8.52% 26.68% 52.70%
##   137:  20.39% 56.47% 31.36%  8.91% 26.38% 51.35%
##   138:  20.08% 57.65% 30.51%  8.52% 26.08% 54.05%
##   139:  20.27% 60.00% 31.14%  8.44% 26.23% 54.05%
##   140:  20.39% 58.82% 31.36%  8.28% 26.97% 54.05%
##   141:  20.47% 60.00% 31.14%  8.60% 26.83% 52.70%
##   142:  20.23% 57.65% 31.36%  8.36% 26.38% 54.05%
##   143:  20.43% 57.65% 31.14%  8.75% 26.53% 54.05%
##   144:  20.23% 57.65% 31.14%  8.44% 26.53% 52.70%
##   145:  20.43% 57.65% 31.57%  8.52% 26.68% 54.05%
##   146:  20.58% 57.65% 31.36%  8.60% 27.27% 54.05%
##   147:  20.58% 57.65% 31.36%  8.52% 27.57% 52.70%
##   148:  20.16% 57.65% 31.78%  8.12% 26.38% 52.70%
##   149:  20.19% 57.65% 31.14%  8.12% 26.83% 54.05%
##   150:  20.31% 57.65% 30.72%  8.20% 27.42% 54.05%
##   151:  20.51% 57.65% 31.57%  8.20% 27.57% 54.05%
##   152:  20.39% 57.65% 31.78%  8.04% 27.42% 52.70%
##   153:  20.23% 57.65% 30.72%  8.36% 26.97% 52.70%
##   154:  20.27% 57.65% 31.14%  8.12% 27.27% 52.70%
##   155:  20.19% 57.65% 31.14%  8.36% 26.53% 52.70%
##   156:  20.39% 57.65% 31.57%  8.68% 26.38% 52.70%
##   157:  20.19% 57.65% 30.93%  8.60% 26.23% 52.70%
##   158:  20.31% 57.65% 30.93%  8.52% 26.83% 52.70%
##   159:  20.27% 57.65% 31.14%  8.44% 26.53% 54.05%
##   160:  20.27% 57.65% 31.14%  8.36% 26.83% 52.70%
##   161:  20.35% 57.65% 31.14%  8.52% 26.83% 52.70%
##   162:  20.58% 58.82% 31.57%  8.44% 27.27% 54.05%
##   163:  20.54% 56.47% 31.99%  8.44% 27.12% 54.05%
##   164:  20.43% 57.65% 32.20%  8.12% 26.97% 54.05%
##   165:  20.31% 57.65% 31.78%  8.28% 26.53% 54.05%
##   166:  20.47% 57.65% 32.20%  8.44% 26.53% 54.05%
##   167:  20.47% 57.65% 31.99%  8.52% 26.53% 54.05%
##   168:  20.66% 57.65% 31.78%  8.68% 27.12% 54.05%
##   169:  20.54% 57.65% 31.57%  8.68% 26.83% 54.05%
##   170:  20.35% 58.82% 31.14%  8.44% 26.68% 54.05%
##   171:  20.51% 57.65% 30.72%  8.60% 27.57% 52.70%
##   172:  20.27% 57.65% 31.36%  8.28% 26.83% 52.70%
##   173:  20.51% 57.65% 30.93%  8.68% 27.27% 52.70%
##   174:  20.43% 57.65% 30.72%  8.75% 26.97% 52.70%
##   175:  20.62% 57.65% 31.36%  8.44% 27.87% 52.70%
##   176:  20.39% 57.65% 31.14%  8.36% 27.27% 52.70%
##   177:  20.47% 57.65% 31.36%  8.60% 26.97% 52.70%
##   178:  20.31% 57.65% 31.36%  8.44% 26.68% 52.70%
##   179:  20.16% 57.65% 31.36%  8.20% 26.53% 52.70%
##   180:  20.16% 57.65% 30.72%  8.36% 26.68% 52.70%
##   181:  19.96% 57.65% 29.87%  8.44% 26.38% 52.70%
##   182:  20.23% 58.82% 30.93%  8.52% 26.38% 52.70%
##   183:  20.27% 57.65% 30.51%  8.75% 26.38% 54.05%
##   184:  20.51% 58.82% 30.72%  8.68% 27.12% 54.05%
##   185:  20.08% 58.82% 29.66%  8.52% 26.68% 52.70%
##   186:  20.16% 58.82% 30.30%  8.60% 26.38% 52.70%
##   187:  20.12% 58.82% 30.72%  8.36% 26.38% 52.70%
##   188:  20.16% 58.82% 30.72%  8.36% 26.53% 52.70%
##   189:  20.31% 58.82% 30.51%  8.52% 26.83% 54.05%
##   190:  20.04% 58.82% 29.66%  8.44% 26.68% 52.70%
##   191:  20.16% 58.82% 31.14%  8.28% 26.53% 51.35%
##   192:  19.96% 58.82% 30.30%  8.12% 26.53% 52.70%
##   193:  20.12% 58.82% 30.72%  8.36% 26.38% 52.70%
##   194:  20.00% 58.82% 30.30%  8.12% 26.53% 54.05%
##   195:  19.96% 58.82% 30.08%  8.44% 26.08% 52.70%
##   196:  20.00% 58.82% 30.51%  8.36% 26.08% 52.70%
##   197:  20.16% 58.82% 30.72%  8.36% 26.53% 52.70%
##   198:  20.12% 58.82% 30.30%  8.36% 26.68% 52.70%
##   199:  19.96% 58.82% 29.87%  8.44% 26.23% 52.70%
##   200:  19.92% 58.82% 30.93%  7.97% 26.23% 52.70%
##   201:  19.88% 58.82% 30.30%  8.12% 26.23% 52.70%
##   202:  19.92% 58.82% 30.08%  8.04% 26.68% 52.70%
##   203:  20.08% 58.82% 30.30%  8.36% 26.53% 52.70%
##   204:  20.00% 58.82% 29.87%  8.28% 26.68% 52.70%
##   205:  20.00% 58.82% 29.87%  8.20% 26.97% 51.35%
##   206:  19.84% 58.82% 29.66%  8.04% 26.53% 54.05%
##   207:  19.92% 58.82% 29.66%  8.28% 26.38% 54.05%
##   208:  20.04% 58.82% 30.08%  8.28% 26.53% 54.05%
##   209:  20.12% 58.82% 29.87%  8.52% 26.53% 54.05%
##   210:  19.88% 58.82% 29.24%  8.52% 26.23% 52.70%
##   211:  20.00% 58.82% 29.66%  8.44% 26.38% 54.05%
##   212:  19.96% 58.82% 29.87%  8.28% 26.53% 52.70%
##   213:  20.00% 58.82% 30.08%  8.12% 26.83% 52.70%
##   214:  20.00% 58.82% 29.87%  8.28% 26.68% 52.70%
##   215:  19.77% 58.82% 28.81%  8.12% 26.83% 52.70%
##   216:  19.96% 58.82% 29.03%  8.44% 26.83% 52.70%
##   217:  19.92% 58.82% 29.45%  8.04% 27.12% 52.70%
##   218:  20.04% 58.82% 29.87%  8.36% 26.53% 54.05%
##   219:  19.88% 58.82% 29.87%  8.20% 26.38% 52.70%
##   220:  19.96% 58.82% 29.66%  8.36% 26.53% 52.70%
##   221:  20.12% 58.82% 30.30%  8.28% 26.68% 54.05%
##   222:  19.88% 58.82% 29.66%  8.12% 26.53% 54.05%
##   223:  20.16% 58.82% 30.08%  8.44% 26.68% 54.05%
##   224:  19.96% 58.82% 30.51%  8.04% 26.53% 52.70%
##   225:  20.08% 58.82% 30.51%  8.12% 26.97% 51.35%
##   226:  19.92% 58.82% 30.30%  8.04% 26.68% 51.35%
##   227:  19.88% 58.82% 30.30%  7.97% 26.68% 51.35%
##   228:  20.08% 58.82% 30.30%  8.20% 26.97% 51.35%
##   229:  19.96% 58.82% 29.66%  8.12% 27.12% 51.35%
##   230:  19.92% 58.82% 30.08%  8.20% 26.53% 51.35%
##   231:  20.00% 58.82% 30.08%  8.12% 26.97% 51.35%
##   232:  19.73% 58.82% 29.87%  7.73% 26.83% 51.35%
##   233:  19.84% 57.65% 29.66%  8.12% 26.83% 51.35%
##   234:  19.84% 58.82% 29.66%  7.97% 26.97% 51.35%
##   235:  19.84% 57.65% 29.87%  8.04% 26.83% 51.35%
##   236:  19.81% 58.82% 29.87%  7.89% 26.83% 51.35%
##   237:  19.77% 58.82% 29.45%  7.81% 26.97% 52.70%
##   238:  19.77% 58.82% 29.87%  7.81% 26.83% 51.35%
##   239:  19.69% 58.82% 29.45%  7.81% 26.83% 51.35%
##   240:  19.88% 57.65% 29.66%  8.20% 26.83% 51.35%
##   241:  19.81% 58.82% 29.45%  8.04% 26.83% 51.35%
##   242:  19.81% 58.82% 29.24%  8.04% 26.83% 52.70%
##   243:  19.81% 58.82% 29.45%  8.04% 26.68% 52.70%
##   244:  20.12% 58.82% 30.08%  8.44% 26.83% 51.35%
##   245:  20.08% 57.65% 30.30%  8.20% 26.97% 52.70%
##   246:  19.73% 57.65% 29.87%  7.89% 26.53% 52.70%
##   247:  19.81% 58.82% 29.87%  7.89% 26.68% 52.70%
##   248:  19.88% 58.82% 30.08%  7.57% 27.42% 52.70%
##   249:  19.81% 57.65% 29.45%  7.81% 27.27% 52.70%
##   250:  20.08% 57.65% 29.87%  8.28% 27.12% 52.70%
##   251:  19.88% 57.65% 30.30%  7.89% 26.83% 52.70%
##   252:  20.19% 57.65% 30.72%  8.12% 27.27% 52.70%
##   253:  20.08% 57.65% 30.30%  8.04% 27.27% 52.70%
##   254:  19.92% 57.65% 30.51%  8.04% 26.53% 52.70%
##   255:  20.16% 57.65% 31.14%  8.12% 26.83% 52.70%
##   256:  20.12% 57.65% 30.93%  8.20% 26.68% 52.70%
##   257:  20.04% 57.65% 30.93%  8.04% 26.68% 52.70%
##   258:  20.08% 57.65% 30.93%  8.12% 26.68% 52.70%
##   259:  20.00% 58.82% 30.93%  8.04% 26.38% 52.70%
##   260:  20.12% 58.82% 31.14%  8.04% 26.68% 52.70%
##   261:  20.12% 57.65% 31.14%  8.04% 26.83% 52.70%
##   262:  20.00% 57.65% 31.14%  7.89% 26.68% 52.70%
##   263:  20.00% 58.82% 31.36%  7.97% 26.23% 52.70%
##   264:  20.00% 58.82% 31.36%  7.89% 26.38% 52.70%
##   265:  20.16% 58.82% 31.78%  8.12% 26.23% 52.70%
##   266:  19.96% 60.00% 30.72%  8.12% 26.08% 52.70%
##   267:  20.04% 60.00% 31.57%  7.97% 26.08% 52.70%
##   268:  19.96% 60.00% 31.57%  7.81% 26.08% 52.70%
##   269:  19.92% 60.00% 30.93%  7.81% 26.38% 52.70%
##   270:  19.92% 60.00% 30.93%  7.89% 26.23% 52.70%
##   271:  19.65% 58.82% 30.30%  7.73% 26.08% 52.70%
##   272:  19.81% 58.82% 30.72%  7.89% 26.08% 52.70%
##   273:  19.69% 58.82% 30.51%  7.81% 25.93% 52.70%
##   274:  19.61% 58.82% 30.30%  7.73% 25.93% 52.70%
##   275:  19.77% 57.65% 30.51%  7.97% 26.08% 52.70%
##   276:  19.88% 58.82% 31.36%  7.65% 26.38% 52.70%
##   277:  20.08% 60.00% 32.20%  7.73% 26.23% 52.70%
##   278:  20.04% 60.00% 31.99%  7.73% 26.23% 52.70%
##   279:  20.27% 60.00% 32.20%  7.97% 26.53% 52.70%
##   280:  20.31% 60.00% 31.78%  8.12% 26.68% 52.70%
##   281:  20.16% 60.00% 31.57%  8.04% 26.38% 52.70%
##   282:  19.88% 60.00% 31.36%  7.65% 26.23% 52.70%
##   283:  19.96% 60.00% 31.36%  7.81% 26.38% 51.35%
##   284:  19.84% 60.00% 30.93%  7.89% 25.93% 52.70%
##   285:  19.96% 60.00% 31.36%  7.81% 26.23% 52.70%
##   286:  20.00% 60.00% 31.57%  7.73% 26.38% 52.70%
##   287:  19.92% 60.00% 31.36%  7.73% 26.23% 52.70%
##   288:  20.12% 61.18% 31.57%  7.97% 26.23% 52.70%
##   289:  20.16% 60.00% 31.57%  8.12% 26.23% 52.70%
##   290:  20.04% 60.00% 31.36%  7.89% 26.38% 52.70%
##   291:  20.00% 61.18% 31.14%  7.81% 26.38% 52.70%
##   292:  19.88% 60.00% 31.36%  7.81% 25.93% 52.70%
##   293:  19.88% 61.18% 31.14%  7.97% 25.63% 52.70%
##   294:  19.92% 61.18% 31.36%  7.81% 25.93% 52.70%
##   295:  20.08% 61.18% 31.36%  7.97% 26.23% 52.70%
##   296:  19.96% 61.18% 30.93%  8.04% 25.93% 52.70%
##   297:  19.96% 61.18% 31.14%  8.04% 25.78% 52.70%
##   298:  19.92% 61.18% 30.93%  8.04% 25.78% 52.70%
##   299:  20.00% 61.18% 31.14%  8.12% 25.78% 52.70%
##   300:  19.92% 61.18% 30.93%  8.12% 25.78% 51.35%
##   301:  19.84% 61.18% 31.36%  7.81% 25.78% 51.35%
##   302:  19.73% 61.18% 30.93%  7.89% 25.63% 50.00%
##   303:  20.00% 61.18% 30.93%  7.97% 26.38% 51.35%
##   304:  19.84% 61.18% 30.93%  7.89% 25.93% 51.35%
##   305:  19.88% 61.18% 30.72%  7.89% 26.23% 51.35%
##   306:  19.92% 61.18% 30.93%  7.97% 26.08% 51.35%
##   307:  19.96% 61.18% 31.14%  7.89% 26.23% 51.35%
##   308:  19.84% 61.18% 30.93%  7.81% 26.08% 51.35%
##   309:  20.00% 61.18% 30.93%  8.04% 26.23% 51.35%
##   310:  20.12% 61.18% 31.14%  8.12% 26.38% 51.35%
##   311:  20.04% 61.18% 31.36%  7.97% 26.23% 51.35%
##   312:  20.12% 61.18% 31.78%  7.89% 26.38% 51.35%
##   313:  19.84% 61.18% 31.36%  7.81% 25.78% 51.35%
##   314:  19.84% 61.18% 31.14%  7.81% 25.93% 51.35%
##   315:  19.84% 61.18% 31.57%  7.81% 25.78% 50.00%
##   316:  19.92% 61.18% 31.57%  7.81% 26.08% 50.00%
##   317:  19.92% 61.18% 31.57%  7.73% 26.23% 50.00%
##   318:  19.92% 61.18% 31.78%  7.89% 25.78% 50.00%
##   319:  19.84% 61.18% 31.78%  7.65% 25.93% 50.00%
##   320:  19.84% 61.18% 31.57%  7.81% 25.78% 50.00%
##   321:  19.73% 61.18% 31.57%  7.73% 25.48% 50.00%
##   322:  19.65% 61.18% 31.36%  7.65% 25.48% 50.00%
##   323:  19.69% 61.18% 31.57%  7.65% 25.48% 50.00%
##   324:  19.88% 61.18% 31.99%  7.65% 25.93% 50.00%
##   325:  19.81% 61.18% 31.78%  7.65% 25.78% 50.00%
##   326:  19.84% 61.18% 31.78%  7.65% 25.93% 50.00%
##   327:  19.77% 61.18% 31.99%  7.65% 25.48% 50.00%
##   328:  19.84% 61.18% 31.78%  7.73% 25.78% 50.00%
##   329:  19.73% 61.18% 31.36%  7.65% 25.78% 50.00%
##   330:  19.84% 61.18% 31.57%  7.73% 25.93% 50.00%
##   331:  19.69% 61.18% 31.57%  7.65% 25.48% 50.00%
##   332:  19.61% 61.18% 31.36%  7.65% 25.34% 50.00%
##   333:  19.53% 61.18% 31.36%  7.65% 25.04% 50.00%
##   334:  19.69% 61.18% 31.36%  7.65% 25.63% 50.00%
##   335:  19.81% 61.18% 31.36%  7.73% 25.93% 50.00%
##   336:  19.84% 62.35% 31.14%  7.65% 26.23% 50.00%
##   337:  19.73% 61.18% 31.14%  7.65% 25.93% 50.00%
##   338:  19.81% 61.18% 31.14%  7.81% 25.93% 50.00%
##   339:  19.77% 61.18% 31.14%  7.73% 25.93% 50.00%
##   340:  19.69% 61.18% 31.36%  7.73% 25.48% 50.00%
##   341:  19.84% 61.18% 31.36%  7.73% 26.08% 50.00%
##   342:  19.92% 62.35% 31.78%  7.57% 26.23% 50.00%
##   343:  19.84% 61.18% 31.36%  7.73% 26.08% 50.00%
##   344:  19.88% 61.18% 31.57%  7.81% 25.93% 50.00%
##   345:  19.81% 62.35% 31.14%  7.73% 25.93% 50.00%
##   346:  19.84% 62.35% 31.14%  7.81% 25.93% 50.00%
##   347:  19.92% 62.35% 31.57%  7.73% 26.08% 50.00%
##   348:  19.92% 62.35% 31.57%  7.73% 26.08% 50.00%
##   349:  20.00% 62.35% 31.78%  7.81% 26.08% 50.00%
##   350:  19.96% 62.35% 31.78%  7.89% 25.78% 50.00%
##   351:  19.96% 62.35% 31.57%  7.89% 25.93% 50.00%
##   352:  19.88% 62.35% 31.78%  7.65% 25.93% 50.00%
##   353:  19.96% 62.35% 32.20%  7.73% 25.78% 50.00%
##   354:  19.96% 62.35% 31.99%  7.65% 26.08% 50.00%
##   355:  20.00% 62.35% 31.78%  7.81% 26.08% 50.00%
##   356:  19.84% 62.35% 31.78%  7.65% 25.78% 50.00%
##   357:  19.73% 62.35% 31.78%  7.57% 25.48% 50.00%
##   358:  19.84% 62.35% 31.99%  7.65% 25.48% 51.35%
##   359:  19.84% 62.35% 31.99%  7.49% 25.78% 51.35%
##   360:  20.04% 63.53% 32.20%  7.65% 25.93% 51.35%
##   361:  20.00% 63.53% 31.99%  7.57% 26.08% 51.35%
##   362:  20.00% 62.35% 32.20%  7.49% 26.23% 51.35%
##   363:  20.08% 63.53% 32.42%  7.49% 26.08% 52.70%
##   364:  20.04% 63.53% 32.42%  7.49% 25.93% 52.70%
##   365:  20.19% 62.35% 32.84%  7.73% 25.93% 52.70%
##   366:  20.12% 63.53% 32.84%  7.57% 25.78% 52.70%
##   367:  20.04% 63.53% 32.63%  7.49% 25.78% 52.70%
##   368:  20.12% 63.53% 32.84%  7.57% 25.78% 52.70%
##   369:  20.12% 63.53% 32.63%  7.57% 25.93% 52.70%
##   370:  20.04% 63.53% 32.42%  7.49% 25.93% 52.70%
##   371:  20.12% 63.53% 32.20%  7.65% 26.08% 52.70%
##   372:  20.12% 63.53% 32.20%  7.65% 26.08% 52.70%
##   373:  20.08% 63.53% 31.99%  7.73% 25.93% 52.70%
##   374:  20.27% 63.53% 32.63%  7.73% 26.23% 52.70%
##   375:  20.19% 63.53% 32.20%  7.73% 26.23% 52.70%
##   376:  20.27% 63.53% 32.63%  7.73% 26.23% 52.70%
##   377:  20.23% 63.53% 32.20%  7.89% 26.08% 52.70%
##   378:  20.08% 63.53% 32.20%  7.73% 25.78% 52.70%
##   379:  20.00% 63.53% 31.78%  7.73% 25.78% 52.70%
##   380:  19.84% 62.35% 31.57%  7.65% 25.63% 52.70%
##   381:  19.84% 62.35% 31.78%  7.65% 25.48% 52.70%
##   382:  20.08% 62.35% 32.42%  7.89% 25.48% 52.70%
##   383:  20.00% 63.53% 32.20%  7.57% 25.78% 52.70%
##   384:  20.00% 63.53% 31.99%  7.73% 25.63% 52.70%
##   385:  19.84% 63.53% 31.78%  7.41% 25.78% 52.70%
##   386:  19.81% 63.53% 31.57%  7.33% 25.93% 52.70%
##   387:  19.88% 63.53% 31.99%  7.41% 25.78% 52.70%
##   388:  19.96% 63.53% 31.78%  7.49% 26.08% 52.70%
##   389:  19.88% 63.53% 31.78%  7.41% 25.93% 52.70%
##   390:  19.96% 63.53% 31.99%  7.41% 26.08% 52.70%
##   391:  19.96% 63.53% 31.78%  7.41% 26.23% 52.70%
##   392:  20.00% 63.53% 31.99%  7.49% 26.08% 52.70%
##   393:  19.96% 63.53% 31.57%  7.49% 26.23% 52.70%
##   394:  19.69% 62.35% 31.57%  7.41% 25.48% 52.70%
##   395:  19.65% 62.35% 31.36%  7.41% 25.48% 52.70%
##   396:  19.77% 63.53% 31.78%  7.41% 25.48% 52.70%
##   397:  19.77% 62.35% 31.78%  7.41% 25.63% 52.70%
##   398:  19.77% 62.35% 31.57%  7.41% 25.78% 52.70%
##   399:  19.73% 62.35% 31.36%  7.49% 25.63% 52.70%
##   400:  19.73% 62.35% 31.57%  7.41% 25.63% 52.70%
##   401:  19.65% 62.35% 31.14%  7.41% 25.63% 52.70%
##   402:  19.69% 62.35% 31.36%  7.49% 25.48% 52.70%
##   403:  19.81% 62.35% 31.78%  7.57% 25.48% 52.70%
##   404:  19.84% 62.35% 31.57%  7.57% 25.78% 52.70%
##   405:  19.73% 62.35% 31.36%  7.41% 25.78% 52.70%
##   406:  19.81% 62.35% 31.57%  7.41% 25.93% 52.70%
##   407:  19.92% 62.35% 31.78%  7.57% 25.93% 52.70%
##   408:  19.96% 63.53% 31.99%  7.49% 25.93% 52.70%
##   409:  19.92% 62.35% 31.57%  7.65% 25.93% 52.70%
##   410:  19.77% 62.35% 31.36%  7.49% 25.78% 52.70%
##   411:  20.04% 63.53% 31.78%  7.73% 25.93% 52.70%
##   412:  19.73% 63.53% 30.72%  7.57% 25.78% 52.70%
##   413:  19.73% 62.35% 31.14%  7.41% 25.93% 52.70%
##   414:  19.61% 63.53% 30.72%  7.49% 25.48% 52.70%
##   415:  19.77% 62.35% 31.57%  7.41% 25.78% 52.70%
##   416:  19.81% 63.53% 31.14%  7.57% 25.78% 52.70%
##   417:  19.73% 62.35% 30.72%  7.57% 25.93% 52.70%
##   418:  19.69% 62.35% 31.36%  7.33% 25.78% 52.70%
##   419:  19.69% 63.53% 30.93%  7.41% 25.78% 52.70%
##   420:  19.65% 63.53% 31.14%  7.33% 25.63% 52.70%
##   421:  19.73% 63.53% 31.36%  7.41% 25.63% 52.70%
##   422:  19.77% 63.53% 31.57%  7.18% 26.08% 52.70%
##   423:  19.65% 63.53% 31.14%  7.26% 25.78% 52.70%
##   424:  19.73% 63.53% 30.51%  7.49% 26.08% 52.70%
##   425:  19.73% 63.53% 30.93%  7.26% 26.23% 52.70%
##   426:  19.81% 63.53% 30.72%  7.41% 26.38% 52.70%
##   427:  19.92% 63.53% 31.14%  7.41% 26.53% 52.70%
##   428:  19.81% 63.53% 31.14%  7.33% 26.23% 52.70%
##   429:  19.77% 63.53% 30.72%  7.49% 26.08% 52.70%
##   430:  19.81% 63.53% 30.93%  7.49% 26.08% 52.70%
##   431:  19.77% 63.53% 30.93%  7.41% 26.08% 52.70%
##   432:  19.69% 63.53% 30.51%  7.49% 25.93% 52.70%
##   433:  19.73% 63.53% 30.93%  7.33% 26.08% 52.70%
##   434:  19.61% 63.53% 30.72%  7.26% 26.08% 51.35%
##   435:  19.84% 63.53% 31.14%  7.49% 26.08% 52.70%
##   436:  19.81% 63.53% 30.72%  7.49% 26.23% 52.70%
##   437:  19.69% 63.53% 30.51%  7.41% 26.08% 52.70%
##   438:  19.65% 63.53% 30.30%  7.41% 26.08% 52.70%
##   439:  19.61% 63.53% 30.30%  7.49% 25.78% 52.70%
##   440:  19.73% 63.53% 30.93%  7.49% 25.78% 52.70%
##   441:  19.73% 63.53% 30.93%  7.49% 25.78% 52.70%
##   442:  19.57% 63.53% 30.30%  7.33% 26.08% 51.35%
##   443:  19.57% 63.53% 30.30%  7.41% 25.78% 52.70%
##   444:  19.65% 63.53% 30.51%  7.41% 25.93% 52.70%
##   445:  19.73% 63.53% 31.14%  7.49% 25.63% 52.70%
##   446:  19.65% 63.53% 31.14%  7.18% 25.93% 52.70%
##   447:  19.61% 63.53% 30.93%  7.18% 25.93% 52.70%
##   448:  19.61% 63.53% 30.72%  7.26% 25.93% 52.70%
##   449:  19.77% 63.53% 31.36%  7.41% 25.78% 52.70%
##   450:  19.69% 63.53% 30.72%  7.26% 26.23% 52.70%
##   451:  19.77% 63.53% 30.93%  7.33% 26.23% 52.70%
##   452:  19.69% 63.53% 30.72%  7.33% 26.08% 52.70%
##   453:  19.73% 63.53% 31.14%  7.26% 26.08% 52.70%
##   454:  19.73% 63.53% 31.14%  7.41% 25.78% 52.70%
##   455:  19.65% 63.53% 31.36%  7.26% 25.63% 52.70%
##   456:  19.77% 63.53% 31.36%  7.33% 25.93% 52.70%
##   457:  19.69% 63.53% 31.36%  7.26% 25.78% 52.70%
##   458:  19.81% 63.53% 31.36%  7.33% 26.08% 52.70%
##   459:  19.88% 63.53% 31.36%  7.41% 26.23% 52.70%
##   460:  19.96% 63.53% 31.57%  7.49% 26.23% 52.70%
##   461:  19.88% 63.53% 31.57%  7.49% 25.93% 52.70%
##   462:  19.84% 63.53% 31.36%  7.49% 25.93% 52.70%
##   463:  19.77% 63.53% 30.93%  7.41% 26.08% 52.70%
##   464:  19.88% 63.53% 30.93%  7.81% 25.78% 52.70%
##   465:  19.65% 63.53% 30.51%  7.57% 25.63% 52.70%
##   466:  19.81% 63.53% 30.72%  7.65% 25.93% 52.70%
##   467:  19.84% 63.53% 30.93%  7.65% 25.93% 52.70%
##   468:  19.88% 63.53% 31.14%  7.65% 25.93% 52.70%
##   469:  19.77% 62.35% 31.57%  7.41% 25.78% 52.70%
##   470:  19.73% 62.35% 31.14%  7.41% 25.93% 52.70%
##   471:  19.77% 62.35% 30.93%  7.57% 25.93% 52.70%
##   472:  19.81% 62.35% 31.36%  7.57% 25.78% 52.70%
##   473:  19.77% 62.35% 31.57%  7.33% 25.93% 52.70%
##   474:  19.77% 62.35% 31.36%  7.41% 25.93% 52.70%
##   475:  19.77% 62.35% 31.14%  7.57% 25.78% 52.70%
##   476:  19.65% 62.35% 30.93%  7.57% 25.48% 52.70%
##   477:  19.77% 62.35% 31.14%  7.49% 25.93% 52.70%
##   478:  19.73% 62.35% 31.36%  7.41% 25.78% 52.70%
##   479:  19.69% 62.35% 31.36%  7.41% 25.63% 52.70%
##   480:  19.69% 62.35% 31.36%  7.49% 25.48% 52.70%
##   481:  19.77% 62.35% 31.36%  7.49% 25.78% 52.70%
##   482:  19.77% 62.35% 31.14%  7.49% 25.93% 52.70%
##   483:  19.69% 62.35% 31.14%  7.49% 25.63% 52.70%
##   484:  19.77% 62.35% 31.36%  7.49% 25.78% 52.70%
##   485:  19.81% 62.35% 31.36%  7.65% 25.63% 52.70%
##   486:  19.96% 62.35% 31.78%  7.65% 25.93% 52.70%
##   487:  19.96% 62.35% 31.57%  7.73% 25.93% 52.70%
##   488:  19.84% 62.35% 31.57%  7.49% 25.93% 52.70%
##   489:  19.88% 62.35% 31.36%  7.57% 26.08% 52.70%
##   490:  19.88% 62.35% 31.57%  7.49% 26.08% 52.70%
##   491:  19.96% 62.35% 31.78%  7.41% 26.38% 52.70%
##   492:  20.04% 62.35% 31.57%  7.49% 26.68% 52.70%
##   493:  20.00% 62.35% 31.57%  7.57% 26.38% 52.70%
##   494:  20.12% 62.35% 31.57%  7.65% 26.68% 52.70%
##   495:  19.92% 62.35% 31.36%  7.49% 26.38% 52.70%
##   496:  19.84% 62.35% 31.14%  7.57% 26.08% 52.70%
##   497:  19.77% 62.35% 31.14%  7.49% 25.93% 52.70%
##   498:  20.00% 62.35% 31.36%  7.73% 26.23% 52.70%
##   499:  19.96% 62.35% 31.57%  7.73% 25.93% 52.70%
##   500:  20.00% 62.35% 31.57%  7.73% 26.08% 52.70%
##   501:  19.92% 62.35% 31.36%  7.65% 26.08% 52.70%
##   502:  19.96% 62.35% 31.57%  7.49% 26.38% 52.70%
##   503:  19.96% 62.35% 31.57%  7.65% 26.08% 52.70%
##   504:  19.88% 62.35% 31.14%  7.65% 26.08% 52.70%
##   505:  19.96% 62.35% 31.36%  7.73% 26.08% 52.70%
##   506:  20.00% 62.35% 31.36%  7.65% 26.38% 52.70%
##   507:  19.92% 62.35% 31.36%  7.65% 26.08% 52.70%
##   508:  19.92% 61.18% 31.36%  7.73% 26.08% 52.70%
##   509:  20.00% 62.35% 31.36%  7.73% 26.23% 52.70%
##   510:  19.92% 62.35% 31.14%  7.73% 26.08% 52.70%
##   511:  19.88% 62.35% 31.14%  7.57% 26.23% 52.70%
##   512:  19.81% 61.18% 31.36%  7.57% 25.93% 52.70%
##   513:  19.61% 61.18% 30.93%  7.33% 25.93% 52.70%
##   514:  19.65% 61.18% 30.72%  7.49% 25.93% 52.70%
##   515:  19.69% 61.18% 31.14%  7.49% 25.78% 52.70%
##   516:  19.84% 61.18% 31.36%  7.57% 26.08% 52.70%
##   517:  19.73% 61.18% 31.36%  7.49% 25.78% 52.70%
##   518:  19.77% 61.18% 30.93%  7.57% 26.08% 52.70%
##   519:  19.84% 61.18% 30.93%  7.49% 26.53% 52.70%
##   520:  20.00% 61.18% 31.36%  7.73% 26.38% 52.70%
##   521:  19.88% 61.18% 30.93%  7.73% 26.23% 52.70%
##   522:  19.92% 61.18% 30.93%  7.89% 26.08% 52.70%
##   523:  19.96% 61.18% 30.93%  7.81% 26.38% 52.70%
##   524:  19.92% 61.18% 31.14%  7.81% 26.08% 52.70%
##   525:  19.81% 61.18% 30.93%  7.73% 25.93% 52.70%
##   526:  19.88% 61.18% 31.14%  7.65% 26.23% 52.70%
##   527:  19.92% 61.18% 31.36%  7.73% 26.08% 52.70%
##   528:  19.84% 61.18% 30.93%  7.65% 26.23% 52.70%
##   529:  19.81% 61.18% 31.36%  7.49% 26.08% 52.70%
##   530:  19.65% 61.18% 30.51%  7.49% 26.08% 52.70%
##   531:  19.77% 61.18% 30.72%  7.65% 26.08% 52.70%
##   532:  19.53% 61.18% 30.08%  7.41% 26.08% 52.70%
##   533:  19.61% 61.18% 30.30%  7.49% 26.08% 52.70%
##   534:  19.65% 61.18% 30.93%  7.41% 25.93% 52.70%
##   535:  19.69% 61.18% 30.93%  7.41% 26.08% 52.70%
##   536:  19.69% 61.18% 30.93%  7.26% 26.23% 54.05%
##   537:  19.61% 61.18% 30.51%  7.33% 26.23% 52.70%
##   538:  19.77% 61.18% 30.72%  7.57% 26.08% 54.05%
##   539:  19.73% 61.18% 30.93%  7.49% 25.93% 54.05%
##   540:  19.61% 61.18% 30.51%  7.41% 25.93% 54.05%
##   541:  19.69% 61.18% 30.93%  7.41% 25.93% 54.05%
##   542:  19.73% 61.18% 30.72%  7.57% 25.93% 54.05%
##   543:  19.77% 61.18% 31.14%  7.41% 26.08% 54.05%
##   544:  19.69% 61.18% 30.51%  7.41% 26.23% 54.05%
##   545:  19.65% 61.18% 30.72%  7.33% 26.08% 54.05%
##   546:  19.61% 61.18% 30.72%  7.33% 25.93% 54.05%
##   547:  19.65% 61.18% 30.72%  7.41% 25.93% 54.05%
##   548:  19.65% 61.18% 30.30%  7.57% 25.93% 54.05%
##   549:  19.49% 61.18% 30.72%  7.33% 25.48% 54.05%
##   550:  19.49% 61.18% 30.72%  7.33% 25.48% 54.05%
##   551:  19.61% 61.18% 30.72%  7.49% 25.63% 54.05%
##   552:  19.65% 61.18% 30.72%  7.57% 25.63% 54.05%
##   553:  19.77% 61.18% 30.93%  7.57% 25.93% 54.05%
##   554:  19.73% 61.18% 30.93%  7.57% 25.78% 54.05%
##   555:  19.73% 61.18% 30.72%  7.65% 25.78% 54.05%
##   556:  19.65% 61.18% 30.93%  7.65% 25.48% 52.70%
##   557:  19.61% 61.18% 30.93%  7.41% 25.63% 54.05%
##   558:  19.69% 61.18% 30.72%  7.57% 25.93% 52.70%
##   559:  19.69% 61.18% 30.93%  7.57% 25.78% 52.70%
##   560:  19.65% 61.18% 31.36%  7.41% 25.63% 52.70%
##   561:  19.69% 61.18% 31.14%  7.49% 25.78% 52.70%
##   562:  19.53% 61.18% 30.93%  7.41% 25.48% 52.70%
##   563:  19.57% 61.18% 31.14%  7.41% 25.48% 52.70%
##   564:  19.65% 61.18% 31.36%  7.41% 25.63% 52.70%
##   565:  19.57% 61.18% 30.72%  7.57% 25.48% 52.70%
##   566:  19.57% 61.18% 31.14%  7.49% 25.34% 52.70%
##   567:  19.53% 61.18% 31.14%  7.49% 25.34% 51.35%
##   568:  19.46% 61.18% 30.93%  7.49% 25.19% 51.35%
##   569:  19.42% 61.18% 30.51%  7.57% 25.04% 52.70%
##   570:  19.61% 61.18% 30.72%  7.57% 25.48% 54.05%
##   571:  19.61% 60.00% 30.93%  7.57% 25.48% 54.05%
##   572:  19.38% 60.00% 30.51%  7.41% 25.34% 52.70%
##   573:  19.61% 60.00% 30.93%  7.49% 25.78% 52.70%
##   574:  19.46% 60.00% 30.72%  7.33% 25.63% 52.70%
##   575:  19.49% 60.00% 30.93%  7.41% 25.48% 52.70%
##   576:  19.46% 60.00% 30.72%  7.41% 25.34% 54.05%
##   577:  19.46% 60.00% 30.72%  7.41% 25.48% 52.70%
##   578:  19.46% 60.00% 30.72%  7.41% 25.34% 54.05%
##   579:  19.46% 60.00% 30.51%  7.49% 25.34% 54.05%
##   580:  19.26% 60.00% 30.51%  7.26% 25.04% 54.05%
##   581:  19.26% 60.00% 30.51%  7.26% 25.04% 54.05%
##   582:  19.34% 60.00% 30.51%  7.02% 25.78% 54.05%
##   583:  19.53% 60.00% 30.72%  7.33% 25.78% 54.05%
##   584:  19.38% 60.00% 30.51%  7.10% 25.78% 54.05%
##   585:  19.34% 60.00% 30.30%  7.26% 25.48% 54.05%
##   586:  19.38% 60.00% 30.51%  7.18% 25.78% 52.70%
##   587:  19.22% 60.00% 30.08%  7.18% 25.48% 52.70%
##   588:  19.34% 60.00% 30.30%  7.26% 25.63% 52.70%
##   589:  19.30% 61.18% 30.30%  7.18% 25.48% 52.70%
##   590:  19.42% 60.00% 30.51%  7.26% 25.78% 52.70%
##   591:  19.42% 60.00% 30.30%  7.33% 25.78% 52.70%
##   592:  19.30% 60.00% 30.30%  7.18% 25.63% 52.70%
##   593:  19.38% 60.00% 30.30%  7.26% 25.78% 52.70%
##   594:  19.38% 60.00% 30.51%  7.26% 25.63% 52.70%
##   595:  19.46% 60.00% 30.51%  7.33% 25.78% 52.70%
##   596:  19.38% 60.00% 30.51%  7.26% 25.63% 52.70%
##   597:  19.30% 60.00% 30.51%  7.18% 25.48% 52.70%
##   598:  19.38% 60.00% 30.30%  7.26% 25.78% 52.70%
##   599:  19.30% 60.00% 30.51%  7.18% 25.48% 52.70%
##   600:  19.26% 60.00% 30.30%  7.18% 25.48% 52.70%
##   601:  19.30% 60.00% 30.51%  7.10% 25.63% 52.70%
##   602:  19.46% 60.00% 30.51%  7.26% 25.78% 54.05%
##   603:  19.49% 60.00% 30.93%  7.18% 25.78% 54.05%
##   604:  19.46% 60.00% 30.51%  7.18% 25.93% 54.05%
##   605:  19.42% 60.00% 30.51%  7.18% 25.78% 54.05%
##   606:  19.46% 60.00% 30.72%  7.18% 25.78% 54.05%
##   607:  19.42% 60.00% 30.51%  7.18% 25.78% 54.05%
##   608:  19.42% 60.00% 30.72%  7.26% 25.48% 54.05%
##   609:  19.46% 60.00% 30.93%  7.10% 25.78% 54.05%
##   610:  19.53% 60.00% 30.72%  7.18% 25.93% 55.41%
##   611:  19.49% 60.00% 30.72%  7.18% 25.78% 55.41%
##   612:  19.46% 60.00% 30.51%  7.18% 25.78% 55.41%
##   613:  19.61% 61.18% 30.72%  7.18% 26.08% 55.41%
##   614:  19.38% 60.00% 30.51%  7.18% 25.63% 54.05%
##   615:  19.42% 60.00% 30.72%  7.10% 25.78% 54.05%
##   616:  19.46% 60.00% 30.72%  7.18% 25.78% 54.05%
##   617:  19.42% 60.00% 30.51%  7.26% 25.63% 54.05%
##   618:  19.53% 60.00% 30.72%  7.26% 25.78% 55.41%
##   619:  19.42% 60.00% 30.51%  7.18% 25.78% 54.05%
##   620:  19.49% 60.00% 30.93%  7.18% 25.63% 55.41%
##   621:  19.57% 60.00% 30.93%  7.10% 26.08% 55.41%
##   622:  19.53% 60.00% 30.93%  7.18% 25.78% 55.41%
##   623:  19.42% 60.00% 30.72%  7.02% 25.78% 55.41%
##   624:  19.53% 60.00% 30.93%  7.18% 25.78% 55.41%
##   625:  19.61% 60.00% 30.93%  7.33% 25.78% 55.41%
##   626:  19.57% 60.00% 30.51%  7.26% 26.08% 55.41%
##   627:  19.57% 60.00% 30.51%  7.26% 26.08% 55.41%
##   628:  19.65% 60.00% 30.72%  7.18% 26.38% 55.41%
##   629:  19.73% 60.00% 30.93%  7.26% 26.38% 55.41%
##   630:  19.81% 60.00% 30.93%  7.33% 26.53% 55.41%
##   631:  19.65% 60.00% 30.72%  7.33% 26.08% 55.41%
##   632:  19.65% 60.00% 30.93%  7.18% 26.23% 55.41%
##   633:  19.61% 60.00% 30.93%  7.18% 26.08% 55.41%
##   634:  19.53% 60.00% 30.72%  7.18% 25.93% 55.41%
##   635:  19.65% 60.00% 30.93%  7.18% 26.23% 55.41%
##   636:  19.65% 60.00% 31.14%  7.18% 26.08% 55.41%
##   637:  19.69% 61.18% 31.36%  7.18% 25.93% 55.41%
##   638:  19.77% 61.18% 31.57%  7.18% 26.08% 55.41%
##   639:  19.77% 61.18% 31.36%  7.26% 26.08% 55.41%
##   640:  19.77% 61.18% 31.14%  7.33% 26.08% 55.41%
##   641:  19.77% 61.18% 31.36%  7.26% 26.08% 55.41%
##   642:  19.81% 61.18% 31.14%  7.26% 26.38% 55.41%
##   643:  19.81% 61.18% 30.93%  7.26% 26.53% 55.41%
##   644:  19.84% 61.18% 31.14%  7.26% 26.53% 55.41%
##   645:  19.77% 61.18% 30.93%  7.18% 26.53% 55.41%
##   646:  19.81% 61.18% 31.14%  7.18% 26.53% 55.41%
##   647:  19.81% 61.18% 31.36%  7.10% 26.53% 55.41%
##   648:  19.92% 62.35% 31.36%  7.18% 26.68% 55.41%
##   649:  19.88% 62.35% 31.36%  7.10% 26.68% 55.41%
##   650:  19.92% 61.18% 31.57%  7.18% 26.68% 55.41%
##   651:  19.88% 61.18% 31.78%  7.10% 26.53% 55.41%
##   652:  19.77% 61.18% 31.14%  7.02% 26.68% 55.41%
##   653:  19.81% 61.18% 31.36%  7.02% 26.68% 55.41%
##   654:  19.65% 61.18% 30.93%  7.02% 26.53% 54.05%
##   655:  19.61% 60.00% 30.93%  7.02% 26.53% 54.05%
##   656:  19.81% 61.18% 31.57%  7.02% 26.53% 55.41%
##   657:  19.77% 61.18% 31.14%  7.02% 26.68% 55.41%
##   658:  19.88% 61.18% 31.57%  7.10% 26.68% 55.41%
##   659:  19.73% 60.00% 31.14%  7.10% 26.53% 55.41%
##   660:  19.81% 61.18% 31.36%  7.10% 26.68% 54.05%
##   661:  19.73% 61.18% 31.36%  7.02% 26.53% 54.05%
##   662:  19.65% 61.18% 31.14%  7.02% 26.53% 52.70%
##   663:  19.61% 61.18% 31.14%  7.10% 26.08% 54.05%
##   664:  19.53% 61.18% 31.14%  6.94% 26.23% 52.70%
##   665:  19.65% 61.18% 31.36%  7.02% 26.38% 52.70%
##   666:  19.73% 61.18% 31.57%  7.10% 26.23% 54.05%
##   667:  19.69% 61.18% 31.57%  6.94% 26.38% 54.05%
##   668:  19.53% 61.18% 31.14%  6.94% 26.08% 54.05%
##   669:  19.69% 61.18% 31.57%  6.94% 26.38% 54.05%
##   670:  19.53% 61.18% 31.14%  6.94% 26.08% 54.05%
##   671:  19.65% 61.18% 31.57%  6.86% 26.38% 54.05%
##   672:  19.73% 61.18% 31.78%  6.94% 26.38% 54.05%
##   673:  19.69% 61.18% 31.57%  6.86% 26.53% 54.05%
##   674:  19.69% 62.35% 31.57%  6.86% 26.38% 54.05%
##   675:  19.69% 62.35% 31.57%  6.86% 26.38% 54.05%
##   676:  19.65% 62.35% 31.14%  6.86% 26.53% 54.05%
##   677:  19.57% 62.35% 31.14%  6.78% 26.38% 54.05%
##   678:  19.61% 61.18% 30.93%  6.94% 26.53% 54.05%
##   679:  19.73% 62.35% 31.36%  6.94% 26.53% 54.05%
##   680:  19.69% 61.18% 31.14%  7.02% 26.53% 54.05%
##   681:  19.57% 61.18% 30.93%  7.02% 26.38% 52.70%
##   682:  19.77% 61.18% 31.36%  7.02% 26.68% 54.05%
##   683:  19.65% 61.18% 31.36%  6.86% 26.53% 54.05%
##   684:  19.65% 61.18% 31.14%  7.02% 26.38% 54.05%
##   685:  19.61% 61.18% 31.36%  6.94% 26.23% 54.05%
##   686:  19.53% 61.18% 30.93%  6.86% 26.53% 52.70%
##   687:  19.57% 61.18% 31.14%  6.86% 26.53% 52.70%
##   688:  19.57% 61.18% 30.93%  6.94% 26.53% 52.70%
##   689:  19.57% 61.18% 31.14%  6.86% 26.53% 52.70%
##   690:  19.61% 61.18% 31.36%  6.86% 26.53% 52.70%
##   691:  19.53% 60.00% 30.93%  6.94% 26.53% 52.70%
##   692:  19.61% 61.18% 31.36%  6.86% 26.53% 52.70%
##   693:  19.53% 60.00% 31.14%  6.86% 26.53% 52.70%
##   694:  19.53% 60.00% 31.36%  6.86% 26.38% 52.70%
##   695:  19.61% 61.18% 31.36%  6.86% 26.53% 52.70%
##   696:  19.57% 61.18% 31.36%  6.78% 26.53% 52.70%
##   697:  19.61% 61.18% 31.57%  6.86% 26.38% 52.70%
##   698:  19.61% 61.18% 31.36%  6.86% 26.53% 52.70%
##   699:  19.49% 60.00% 31.14%  6.78% 26.53% 52.70%
##   700:  19.42% 60.00% 30.93%  6.70% 26.53% 52.70%
##   701:  19.53% 60.00% 31.36%  6.78% 26.53% 52.70%
##   702:  19.42% 60.00% 30.93%  6.70% 26.53% 52.70%
##   703:  19.49% 60.00% 31.36%  6.78% 26.38% 52.70%
##   704:  19.42% 60.00% 30.93%  6.70% 26.53% 52.70%
##   705:  19.57% 60.00% 31.36%  6.86% 26.53% 52.70%
##   706:  19.57% 60.00% 30.93%  6.94% 26.68% 52.70%
##   707:  19.49% 60.00% 30.93%  6.86% 26.53% 52.70%
##   708:  19.38% 60.00% 30.93%  6.86% 26.08% 52.70%
##   709:  19.57% 60.00% 31.36%  6.86% 26.53% 52.70%
##   710:  19.42% 60.00% 31.14%  6.70% 26.38% 52.70%
##   711:  19.34% 60.00% 30.93%  6.78% 26.08% 52.70%
##   712:  19.30% 61.18% 30.72%  6.70% 26.08% 52.70%
##   713:  19.42% 61.18% 31.14%  6.78% 26.08% 52.70%
##   714:  19.38% 61.18% 31.14%  6.62% 26.23% 52.70%
##   715:  19.18% 60.00% 30.72%  6.62% 25.93% 52.70%
##   716:  19.30% 61.18% 30.72%  6.78% 25.93% 52.70%
##   717:  19.34% 60.00% 31.14%  6.78% 25.93% 52.70%
##   718:  19.38% 60.00% 30.93%  7.02% 25.78% 52.70%
##   719:  19.34% 60.00% 30.93%  6.86% 25.93% 52.70%
##   720:  19.46% 60.00% 30.93%  7.02% 26.08% 52.70%
##   721:  19.46% 60.00% 31.14%  6.94% 26.08% 52.70%
##   722:  19.57% 61.18% 31.14%  7.10% 26.08% 52.70%
##   723:  19.46% 60.00% 30.72%  7.02% 26.23% 52.70%
##   724:  19.53% 60.00% 30.93%  7.10% 26.23% 52.70%
##   725:  19.53% 60.00% 30.93%  7.10% 26.23% 52.70%
##   726:  19.61% 60.00% 31.14%  7.10% 26.38% 52.70%
##   727:  19.53% 60.00% 30.93%  7.02% 26.38% 52.70%
##   728:  19.49% 60.00% 30.93%  7.02% 26.23% 52.70%
##   729:  19.53% 60.00% 30.93%  7.10% 26.23% 52.70%
##   730:  19.49% 60.00% 30.93%  7.02% 26.23% 52.70%
##   731:  19.49% 60.00% 30.93%  7.10% 26.08% 52.70%
##   732:  19.42% 60.00% 30.72%  7.02% 26.08% 52.70%
##   733:  19.34% 60.00% 30.51%  6.94% 26.08% 52.70%
##   734:  19.49% 60.00% 30.93%  7.10% 26.08% 52.70%
##   735:  19.46% 60.00% 30.93%  6.94% 26.23% 52.70%
##   736:  19.42% 60.00% 30.93%  6.86% 26.23% 52.70%
##   737:  19.34% 60.00% 30.72%  6.86% 26.08% 52.70%
##   738:  19.53% 60.00% 31.36%  7.02% 26.08% 52.70%
##   739:  19.42% 60.00% 30.93%  6.94% 26.08% 52.70%
##   740:  19.46% 60.00% 31.36%  6.94% 25.93% 52.70%
##   741:  19.38% 60.00% 30.93%  6.86% 26.08% 52.70%
##   742:  19.42% 60.00% 30.93%  6.94% 26.08% 52.70%
##   743:  19.46% 60.00% 31.36%  6.78% 26.23% 52.70%
##   744:  19.53% 60.00% 31.36%  6.86% 26.38% 52.70%
##   745:  19.38% 60.00% 30.93%  6.86% 26.08% 52.70%
##   746:  19.38% 60.00% 31.14%  6.86% 25.93% 52.70%
##   747:  19.46% 60.00% 31.14%  6.86% 26.23% 52.70%
##   748:  19.42% 60.00% 31.14%  6.78% 26.23% 52.70%
##   749:  19.42% 60.00% 30.93%  6.86% 26.23% 52.70%
##   750:  19.46% 60.00% 31.14%  6.86% 26.23% 52.70%
##   751:  19.38% 60.00% 31.14%  6.78% 26.08% 52.70%
##   752:  19.46% 60.00% 31.14%  6.86% 26.23% 52.70%
##   753:  19.49% 60.00% 31.14%  6.94% 26.23% 52.70%
##   754:  19.34% 60.00% 30.72%  6.78% 26.23% 52.70%
##   755:  19.34% 60.00% 30.72%  6.78% 26.23% 52.70%
##   756:  19.38% 60.00% 30.72%  6.78% 26.38% 52.70%
##   757:  19.30% 60.00% 30.51%  6.70% 26.38% 52.70%
##   758:  19.49% 60.00% 31.14%  6.86% 26.38% 52.70%
##   759:  19.30% 60.00% 30.72%  6.78% 26.08% 52.70%
##   760:  19.34% 60.00% 30.72%  6.78% 26.23% 52.70%
##   761:  19.26% 60.00% 30.72%  6.70% 26.08% 52.70%
##   762:  19.34% 60.00% 30.72%  6.86% 26.08% 52.70%
##   763:  19.30% 60.00% 30.93%  6.70% 26.08% 52.70%
##   764:  19.26% 60.00% 30.93%  6.70% 25.93% 52.70%
##   765:  19.26% 60.00% 30.72%  6.70% 26.08% 52.70%
##   766:  19.26% 60.00% 30.72%  6.62% 26.23% 52.70%
##   767:  19.22% 60.00% 30.72%  6.62% 26.08% 52.70%
##   768:  19.34% 60.00% 30.72%  6.62% 26.53% 52.70%
##   769:  19.30% 60.00% 30.72%  6.62% 26.38% 52.70%
##   770:  19.26% 60.00% 30.30%  6.62% 26.53% 52.70%
##   771:  19.34% 60.00% 30.51%  6.70% 26.53% 52.70%
##   772:  19.30% 60.00% 30.72%  6.70% 26.23% 52.70%
##   773:  19.18% 60.00% 30.30%  6.70% 26.08% 52.70%
##   774:  19.22% 60.00% 30.30%  6.62% 26.38% 52.70%
##   775:  19.34% 60.00% 30.93%  6.70% 26.23% 52.70%
##   776:  19.18% 60.00% 30.72%  6.70% 25.78% 52.70%
##   777:  19.30% 60.00% 30.72%  6.78% 26.08% 52.70%
##   778:  19.26% 60.00% 30.51%  6.78% 26.08% 52.70%
##   779:  19.18% 60.00% 30.72%  6.78% 25.63% 52.70%
##   780:  19.18% 60.00% 30.51%  6.78% 25.78% 52.70%
##   781:  19.26% 60.00% 30.72%  6.70% 26.08% 52.70%
##   782:  19.22% 60.00% 30.51%  6.70% 26.08% 52.70%
##   783:  19.26% 60.00% 30.72%  6.70% 26.08% 52.70%
##   784:  19.30% 60.00% 30.72%  6.86% 25.93% 52.70%
##   785:  19.30% 60.00% 30.72%  6.78% 26.08% 52.70%
##   786:  19.30% 60.00% 30.93%  6.62% 26.23% 52.70%
##   787:  19.30% 60.00% 30.72%  6.70% 26.23% 52.70%
##   788:  19.11% 60.00% 30.30%  6.62% 25.93% 52.70%
##   789:  19.14% 60.00% 30.30%  6.70% 25.93% 52.70%
##   790:  19.14% 60.00% 30.30%  6.70% 25.93% 52.70%
##   791:  19.18% 60.00% 30.51%  6.70% 25.93% 52.70%
##   792:  19.14% 60.00% 30.30%  6.70% 25.93% 52.70%
##   793:  19.14% 60.00% 30.51%  6.70% 25.78% 52.70%
##   794:  19.14% 60.00% 30.51%  6.70% 25.78% 52.70%
##   795:  19.14% 60.00% 30.51%  6.62% 25.93% 52.70%
##   796:  19.14% 60.00% 30.30%  6.62% 26.08% 52.70%
##   797:  19.22% 60.00% 30.08%  6.94% 25.93% 52.70%
##   798:  19.11% 60.00% 30.08%  6.70% 25.93% 52.70%
##   799:  19.18% 60.00% 30.08%  6.86% 25.93% 52.70%
##   800:  19.42% 60.00% 30.30%  7.10% 26.23% 52.70%
##   801:  19.34% 60.00% 30.30%  6.94% 26.23% 52.70%
##   802:  19.26% 60.00% 30.30%  6.86% 26.08% 52.70%
##   803:  19.34% 60.00% 30.30%  6.86% 26.38% 52.70%
##   804:  19.22% 60.00% 30.08%  6.78% 26.23% 52.70%
##   805:  19.26% 60.00% 30.08%  6.78% 26.38% 52.70%
##   806:  19.30% 60.00% 30.30%  6.86% 26.23% 52.70%
##   807:  19.34% 60.00% 30.51%  6.86% 26.23% 52.70%
##   808:  19.34% 60.00% 30.51%  6.94% 26.08% 52.70%
##   809:  19.34% 60.00% 30.51%  6.94% 26.08% 52.70%
##   810:  19.30% 60.00% 30.51%  6.86% 26.08% 52.70%
##   811:  19.26% 60.00% 30.30%  6.94% 25.93% 52.70%
##   812:  19.26% 60.00% 30.30%  6.86% 26.08% 52.70%
##   813:  19.26% 60.00% 30.30%  6.78% 26.23% 52.70%
##   814:  19.22% 60.00% 30.30%  6.78% 26.08% 52.70%
##   815:  19.22% 60.00% 30.30%  6.78% 26.08% 52.70%
##   816:  19.22% 60.00% 30.30%  6.78% 26.08% 52.70%
##   817:  19.30% 60.00% 30.30%  7.02% 25.93% 52.70%
##   818:  19.38% 61.18% 30.51%  7.02% 25.93% 52.70%
##   819:  19.34% 60.00% 30.51%  6.94% 26.08% 52.70%
##   820:  19.38% 60.00% 30.51%  7.02% 26.08% 52.70%
##   821:  19.30% 60.00% 30.51%  6.94% 25.93% 52.70%
##   822:  19.38% 60.00% 30.51%  6.94% 26.23% 52.70%
##   823:  19.22% 60.00% 30.30%  6.70% 26.23% 52.70%
##   824:  19.30% 60.00% 30.30%  6.78% 26.38% 52.70%
##   825:  19.26% 60.00% 30.51%  6.70% 26.23% 52.70%
##   826:  19.34% 60.00% 30.30%  6.94% 26.23% 52.70%
##   827:  19.34% 60.00% 30.30%  6.94% 26.23% 52.70%
##   828:  19.34% 60.00% 30.08%  6.94% 26.38% 52.70%
##   829:  19.38% 60.00% 30.51%  6.94% 26.23% 52.70%
##   830:  19.26% 60.00% 30.08%  6.94% 26.08% 52.70%
##   831:  19.22% 60.00% 30.08%  6.94% 25.93% 52.70%
##   832:  19.26% 60.00% 30.30%  6.94% 25.93% 52.70%
##   833:  19.26% 60.00% 30.30%  6.94% 25.93% 52.70%
##   834:  19.34% 60.00% 30.51%  6.94% 26.08% 52.70%
##   835:  19.30% 60.00% 30.51%  6.78% 26.23% 52.70%
##   836:  19.22% 60.00% 30.30%  6.70% 26.23% 52.70%
##   837:  19.22% 60.00% 30.30%  6.86% 25.93% 52.70%
##   838:  19.22% 60.00% 30.30%  6.86% 25.93% 52.70%
##   839:  19.26% 60.00% 30.30%  6.78% 26.23% 52.70%
##   840:  19.18% 60.00% 30.30%  6.78% 25.93% 52.70%
##   841:  19.18% 60.00% 30.30%  6.70% 26.08% 52.70%
##   842:  19.14% 60.00% 30.08%  6.78% 25.93% 52.70%
##   843:  19.14% 60.00% 30.08%  6.86% 25.78% 52.70%
##   844:  19.18% 60.00% 29.87%  6.94% 25.93% 52.70%
##   845:  19.30% 60.00% 30.51%  6.86% 26.08% 52.70%
##   846:  19.26% 60.00% 30.30%  6.94% 25.93% 52.70%
##   847:  19.30% 60.00% 30.30%  6.94% 26.08% 52.70%
##   848:  19.34% 60.00% 30.51%  6.94% 26.08% 52.70%
##   849:  19.26% 60.00% 30.30%  6.86% 26.08% 52.70%
##   850:  19.30% 60.00% 30.51%  6.94% 25.93% 52.70%
##   851:  19.30% 60.00% 30.30%  6.94% 26.08% 52.70%
##   852:  19.22% 60.00% 30.08%  6.94% 25.93% 52.70%
##   853:  19.26% 60.00% 30.30%  6.94% 25.93% 52.70%
##   854:  19.26% 60.00% 30.08%  6.94% 26.08% 52.70%
##   855:  19.26% 60.00% 30.08%  6.94% 26.08% 52.70%
##   856:  19.26% 60.00% 30.08%  6.94% 26.08% 52.70%
##   857:  19.26% 60.00% 29.87%  6.94% 26.23% 52.70%
##   858:  19.22% 60.00% 29.87%  6.86% 26.23% 52.70%
##   859:  19.18% 60.00% 29.87%  6.86% 26.08% 52.70%
##   860:  19.18% 60.00% 29.87%  6.86% 26.08% 52.70%
##   861:  19.22% 60.00% 30.30%  6.86% 25.93% 52.70%
##   862:  19.11% 60.00% 29.45%  6.86% 26.08% 52.70%
##   863:  19.18% 60.00% 29.66%  6.86% 26.23% 52.70%
##   864:  19.14% 60.00% 29.66%  6.86% 26.08% 52.70%
##   865:  19.18% 60.00% 30.08%  6.94% 25.78% 52.70%
##   866:  19.26% 60.00% 30.08%  6.78% 26.38% 52.70%
##   867:  19.11% 61.18% 29.87%  6.70% 25.93% 52.70%
##   868:  19.18% 60.00% 30.08%  6.70% 26.23% 52.70%
##   869:  19.18% 60.00% 30.08%  6.70% 26.23% 52.70%
##   870:  19.11% 60.00% 29.87%  6.70% 26.08% 52.70%
##   871:  19.03% 60.00% 29.66%  6.70% 25.93% 52.70%
##   872:  19.14% 60.00% 29.87%  6.78% 26.08% 52.70%
##   873:  19.11% 60.00% 29.87%  6.78% 25.93% 52.70%
##   874:  19.22% 61.18% 29.87%  6.78% 26.23% 52.70%
##   875:  19.07% 61.18% 29.66%  6.70% 25.93% 52.70%
##   876:  19.18% 61.18% 29.87%  6.78% 25.93% 54.05%
##   877:  19.26% 61.18% 29.87%  6.78% 26.23% 54.05%
##   878:  19.26% 61.18% 30.30%  6.78% 25.93% 54.05%
##   879:  19.22% 61.18% 30.08%  6.78% 25.93% 54.05%
##   880:  19.22% 61.18% 29.87%  6.70% 26.23% 54.05%
##   881:  19.30% 61.18% 30.30%  6.70% 26.23% 54.05%
##   882:  19.18% 61.18% 29.87%  6.78% 25.93% 54.05%
##   883:  19.26% 61.18% 30.08%  6.70% 26.23% 54.05%
##   884:  19.18% 61.18% 30.51%  6.70% 25.78% 52.70%
##   885:  19.18% 61.18% 30.30%  6.70% 25.93% 52.70%
##   886:  19.11% 61.18% 30.08%  6.70% 25.78% 52.70%
##   887:  19.22% 61.18% 30.51%  6.70% 25.93% 52.70%
##   888:  19.22% 61.18% 30.30%  6.70% 25.93% 54.05%
##   889:  19.18% 61.18% 30.30%  6.70% 25.93% 52.70%
##   890:  19.18% 61.18% 30.30%  6.70% 25.93% 52.70%
##   891:  19.18% 61.18% 30.30%  6.62% 26.08% 52.70%
##   892:  19.14% 61.18% 30.08%  6.70% 25.93% 52.70%
##   893:  19.18% 61.18% 30.08%  6.78% 25.93% 52.70%
##   894:  19.11% 61.18% 30.30%  6.62% 25.78% 52.70%
##   895:  19.18% 61.18% 30.30%  6.70% 25.93% 52.70%
##   896:  19.18% 61.18% 30.30%  6.78% 25.78% 52.70%
##   897:  19.18% 61.18% 30.30%  6.78% 25.78% 52.70%
##   898:  19.18% 61.18% 30.30%  6.78% 25.78% 52.70%
##   899:  19.18% 61.18% 30.30%  6.70% 25.93% 52.70%
##   900:  19.14% 61.18% 30.30%  6.78% 25.63% 52.70%
##   901:  19.11% 61.18% 30.08%  6.78% 25.63% 52.70%
##   902:  19.14% 61.18% 30.08%  6.70% 25.93% 52.70%
##   903:  19.18% 61.18% 30.08%  6.78% 25.93% 52.70%
##   904:  19.07% 61.18% 30.08%  6.70% 25.63% 52.70%
##   905:  19.18% 61.18% 30.30%  6.78% 25.78% 52.70%
##   906:  19.22% 61.18% 30.30%  6.78% 25.93% 52.70%
##   907:  19.18% 61.18% 30.08%  6.78% 25.93% 52.70%
##   908:  19.11% 61.18% 30.30%  6.70% 25.63% 52.70%
##   909:  19.18% 61.18% 30.30%  6.70% 25.93% 52.70%
##   910:  19.18% 61.18% 30.30%  6.78% 25.78% 52.70%
##   911:  19.11% 61.18% 30.30%  6.62% 25.78% 52.70%
##   912:  19.07% 61.18% 30.08%  6.62% 25.78% 52.70%
##   913:  19.18% 61.18% 30.30%  6.70% 25.93% 52.70%
##   914:  19.07% 61.18% 30.08%  6.70% 25.63% 52.70%
##   915:  19.11% 61.18% 30.30%  6.62% 25.78% 52.70%
##   916:  19.07% 61.18% 30.08%  6.70% 25.63% 52.70%
##   917:  18.99% 61.18% 30.08%  6.55% 25.63% 52.70%
##   918:  19.07% 61.18% 30.30%  6.55% 25.78% 52.70%
##   919:  19.11% 62.35% 30.30%  6.55% 25.78% 52.70%
##   920:  19.11% 61.18% 30.30%  6.55% 25.93% 52.70%
##   921:  19.07% 61.18% 30.30%  6.55% 25.78% 52.70%
##   922:  19.03% 61.18% 30.30%  6.47% 25.78% 52.70%
##   923:  19.03% 61.18% 30.30%  6.47% 25.78% 52.70%
##   924:  18.99% 61.18% 30.30%  6.55% 25.48% 52.70%
##   925:  18.95% 61.18% 30.30%  6.55% 25.34% 52.70%
##   926:  18.99% 61.18% 30.30%  6.55% 25.48% 52.70%
##   927:  19.03% 61.18% 30.51%  6.55% 25.48% 52.70%
##   928:  19.03% 61.18% 30.51%  6.55% 25.48% 52.70%
##   929:  18.99% 61.18% 30.51%  6.55% 25.34% 52.70%
##   930:  18.91% 61.18% 30.30%  6.55% 25.19% 52.70%
##   931:  18.91% 61.18% 30.08%  6.62% 25.19% 52.70%
##   932:  18.91% 61.18% 30.30%  6.62% 25.04% 52.70%
##   933:  18.95% 61.18% 30.08%  6.62% 25.34% 52.70%
##   934:  19.03% 61.18% 30.30%  6.70% 25.34% 52.70%
##   935:  18.99% 61.18% 30.30%  6.62% 25.34% 52.70%
##   936:  18.99% 61.18% 30.51%  6.62% 25.19% 52.70%
##   937:  18.95% 61.18% 30.51%  6.62% 25.04% 52.70%
##   938:  19.03% 61.18% 30.51%  6.78% 25.04% 52.70%
##   939:  19.03% 61.18% 30.51%  6.70% 25.19% 52.70%
##   940:  19.18% 62.35% 30.72%  6.78% 25.34% 52.70%
##   941:  19.07% 62.35% 30.51%  6.70% 25.19% 52.70%
##   942:  19.14% 62.35% 30.51%  6.86% 25.19% 52.70%
##   943:  19.14% 62.35% 30.51%  6.70% 25.48% 52.70%
##   944:  19.18% 62.35% 30.72%  6.70% 25.48% 52.70%
##   945:  19.11% 62.35% 30.30%  6.78% 25.34% 52.70%
##   946:  19.07% 62.35% 30.51%  6.78% 25.04% 52.70%
##   947:  19.11% 62.35% 30.30%  6.86% 25.19% 52.70%
##   948:  19.22% 62.35% 30.51%  6.94% 25.34% 52.70%
##   949:  19.14% 62.35% 30.30%  6.86% 25.34% 52.70%
##   950:  19.26% 62.35% 30.30%  7.02% 25.48% 52.70%
##   951:  19.22% 62.35% 30.51%  6.94% 25.34% 52.70%
##   952:  19.14% 62.35% 30.51%  6.86% 25.19% 52.70%
##   953:  19.26% 62.35% 30.72%  6.94% 25.34% 52.70%
##   954:  19.18% 62.35% 30.51%  6.86% 25.34% 52.70%
##   955:  19.14% 62.35% 30.51%  6.86% 25.19% 52.70%
##   956:  19.18% 62.35% 30.72%  6.86% 25.19% 52.70%
##   957:  19.14% 62.35% 30.72%  6.86% 25.04% 52.70%
##   958:  19.22% 62.35% 30.93%  6.86% 25.19% 52.70%
##   959:  19.22% 62.35% 30.72%  6.94% 25.19% 52.70%
##   960:  19.26% 62.35% 30.93%  6.94% 25.19% 52.70%
##   961:  19.22% 62.35% 30.72%  6.94% 25.19% 52.70%
##   962:  19.26% 62.35% 30.72%  7.02% 25.19% 52.70%
##   963:  19.18% 62.35% 30.51%  7.02% 25.04% 52.70%
##   964:  19.14% 62.35% 30.51%  6.94% 25.04% 52.70%
##   965:  19.22% 62.35% 30.93%  6.86% 25.19% 52.70%
##   966:  19.22% 62.35% 30.72%  6.94% 25.19% 52.70%
##   967:  19.22% 62.35% 30.72%  6.94% 25.19% 52.70%
##   968:  19.14% 62.35% 30.72%  6.86% 25.04% 52.70%
##   969:  19.26% 62.35% 30.93%  6.86% 25.34% 52.70%
##   970:  19.26% 62.35% 30.51%  6.94% 25.48% 52.70%
##   971:  19.34% 62.35% 30.72%  7.02% 25.48% 52.70%
##   972:  19.42% 62.35% 30.72%  7.02% 25.78% 52.70%
##   973:  19.34% 62.35% 30.51%  7.02% 25.63% 52.70%
##   974:  19.34% 62.35% 30.93%  6.94% 25.48% 52.70%
##   975:  19.34% 62.35% 30.72%  6.94% 25.63% 52.70%
##   976:  19.34% 62.35% 30.93%  6.94% 25.48% 52.70%
##   977:  19.34% 62.35% 30.93%  6.94% 25.48% 52.70%
##   978:  19.38% 61.18% 30.72%  6.94% 25.93% 52.70%
##   979:  19.38% 62.35% 30.72%  6.86% 25.93% 52.70%
##   980:  19.34% 62.35% 30.72%  6.86% 25.78% 52.70%
##   981:  19.34% 61.18% 30.93%  6.86% 25.78% 52.70%
##   982:  19.34% 61.18% 30.93%  6.94% 25.63% 52.70%
##   983:  19.30% 61.18% 30.72%  6.94% 25.63% 52.70%
##   984:  19.30% 61.18% 30.72%  6.94% 25.63% 52.70%
##   985:  19.22% 61.18% 30.51%  6.86% 25.63% 52.70%
##   986:  19.22% 61.18% 30.51%  6.86% 25.63% 52.70%
##   987:  19.30% 61.18% 30.93%  6.78% 25.78% 52.70%
##   988:  19.38% 62.35% 30.72%  6.86% 25.93% 52.70%
##   989:  19.46% 62.35% 30.72%  6.94% 26.08% 52.70%
##   990:  19.26% 61.18% 30.72%  6.94% 25.48% 52.70%
##   991:  19.34% 61.18% 30.72%  6.94% 25.78% 52.70%
##   992:  19.26% 61.18% 30.93%  6.86% 25.48% 52.70%
##   993:  19.34% 62.35% 30.93%  6.86% 25.63% 52.70%
##   994:  19.30% 61.18% 31.14%  6.86% 25.48% 52.70%
##   995:  19.26% 61.18% 30.93%  6.86% 25.48% 52.70%
##   996:  19.38% 62.35% 30.93%  6.94% 25.63% 52.70%
##   997:  19.38% 61.18% 30.93%  6.94% 25.78% 52.70%
##   998:  19.38% 61.18% 31.14%  6.94% 25.63% 52.70%
##   999:  19.34% 61.18% 30.93%  6.94% 25.63% 52.70%
##  1000:  19.38% 61.18% 30.93%  6.94% 25.78% 52.70%
##  1001:  19.42% 62.35% 30.93%  6.94% 25.78% 52.70%
##  1002:  19.42% 62.35% 30.93%  6.94% 25.78% 52.70%
##  1003:  19.38% 62.35% 30.93%  6.86% 25.78% 52.70%
##  1004:  19.42% 62.35% 30.72%  7.02% 25.78% 52.70%
##  1005:  19.42% 62.35% 30.72%  7.02% 25.78% 52.70%
##  1006:  19.42% 62.35% 30.72%  7.02% 25.78% 52.70%
##  1007:  19.42% 62.35% 30.72%  7.02% 25.78% 52.70%
##  1008:  19.38% 62.35% 30.51%  7.02% 25.78% 52.70%
##  1009:  19.38% 62.35% 30.72%  6.94% 25.78% 52.70%
##  1010:  19.30% 62.35% 30.51%  6.94% 25.63% 52.70%
##  1011:  19.34% 62.35% 30.51%  6.94% 25.78% 52.70%
##  1012:  19.30% 62.35% 30.72%  6.78% 25.78% 52.70%
##  1013:  19.38% 62.35% 30.72%  6.94% 25.78% 52.70%
##  1014:  19.34% 62.35% 30.72%  6.86% 25.78% 52.70%
##  1015:  19.30% 62.35% 30.51%  6.94% 25.63% 52.70%
##  1016:  19.30% 62.35% 30.72%  6.94% 25.48% 52.70%
##  1017:  19.26% 62.35% 30.72%  6.86% 25.48% 52.70%
##  1018:  19.26% 62.35% 30.72%  6.94% 25.34% 52.70%
##  1019:  19.30% 62.35% 30.93%  6.78% 25.63% 52.70%
##  1020:  19.30% 62.35% 30.72%  6.86% 25.63% 52.70%
##  1021:  19.38% 62.35% 30.72%  7.02% 25.63% 52.70%
##  1022:  19.34% 62.35% 30.72%  6.94% 25.63% 52.70%
##  1023:  19.22% 62.35% 30.51%  6.86% 25.48% 52.70%
##  1024:  19.14% 62.35% 30.30%  6.86% 25.34% 52.70%
##  1025:  19.22% 62.35% 30.30%  6.94% 25.48% 52.70%
##  1026:  19.30% 62.35% 30.72%  6.86% 25.63% 52.70%
##  1027:  19.30% 62.35% 30.51%  6.94% 25.63% 52.70%
##  1028:  19.26% 62.35% 30.30%  7.02% 25.48% 52.70%
##  1029:  19.34% 62.35% 30.72%  7.02% 25.48% 52.70%
##  1030:  19.22% 62.35% 30.72%  6.86% 25.34% 52.70%
##  1031:  19.38% 62.35% 30.93%  7.10% 25.34% 52.70%
##  1032:  19.46% 62.35% 31.14%  7.02% 25.63% 52.70%
##  1033:  19.30% 62.35% 30.93%  6.94% 25.34% 52.70%
##  1034:  19.26% 62.35% 30.72%  6.94% 25.34% 52.70%
##  1035:  19.30% 62.35% 30.72%  6.94% 25.48% 52.70%
##  1036:  19.26% 62.35% 30.72%  6.86% 25.48% 52.70%
##  1037:  19.30% 62.35% 30.72%  6.94% 25.48% 52.70%
##  1038:  19.30% 62.35% 30.72%  6.94% 25.48% 52.70%
##  1039:  19.30% 62.35% 30.72%  6.86% 25.63% 52.70%
##  1040:  19.34% 62.35% 30.93%  6.94% 25.48% 52.70%
##  1041:  19.30% 62.35% 30.93%  6.86% 25.48% 52.70%
##  1042:  19.42% 62.35% 31.14%  7.02% 25.48% 52.70%
##  1043:  19.38% 62.35% 30.72%  7.02% 25.63% 52.70%
##  1044:  19.46% 62.35% 31.14%  7.10% 25.48% 52.70%
##  1045:  19.34% 62.35% 30.93%  7.02% 25.34% 52.70%
##  1046:  19.46% 62.35% 30.93%  7.10% 25.63% 52.70%
##  1047:  19.42% 62.35% 30.72%  7.10% 25.63% 52.70%
##  1048:  19.46% 62.35% 30.72%  7.10% 25.78% 52.70%
##  1049:  19.42% 62.35% 30.72%  7.10% 25.63% 52.70%
##  1050:  19.38% 62.35% 30.51%  7.02% 25.78% 52.70%
##  1051:  19.34% 62.35% 30.51%  7.02% 25.63% 52.70%
##  1052:  19.42% 62.35% 30.72%  7.02% 25.78% 52.70%
##  1053:  19.38% 62.35% 30.51%  7.10% 25.63% 52.70%
##  1054:  19.34% 62.35% 30.72%  7.02% 25.48% 52.70%
##  1055:  19.46% 62.35% 30.72%  7.10% 25.78% 52.70%
##  1056:  19.38% 62.35% 30.72%  6.94% 25.78% 52.70%
##  1057:  19.30% 62.35% 30.72%  6.94% 25.48% 52.70%
##  1058:  19.38% 62.35% 30.72%  6.94% 25.78% 52.70%
##  1059:  19.38% 62.35% 30.72%  6.94% 25.78% 52.70%
##  1060:  19.46% 62.35% 30.93%  6.94% 25.93% 52.70%
##  1061:  19.46% 62.35% 30.93%  6.94% 25.93% 52.70%
##  1062:  19.38% 62.35% 30.72%  6.94% 25.78% 52.70%
##  1063:  19.38% 62.35% 30.51%  6.94% 25.93% 52.70%
##  1064:  19.34% 62.35% 30.30%  6.94% 25.93% 52.70%
##  1065:  19.42% 62.35% 30.72%  6.94% 25.93% 52.70%
##  1066:  19.34% 62.35% 30.30%  6.94% 25.93% 52.70%
##  1067:  19.30% 62.35% 30.30%  6.86% 25.93% 52.70%
##  1068:  19.34% 62.35% 30.30%  6.94% 25.93% 52.70%
##  1069:  19.30% 62.35% 30.30%  6.86% 25.93% 52.70%
##  1070:  19.46% 62.35% 30.93%  6.94% 25.93% 52.70%
##  1071:  19.38% 62.35% 30.72%  6.86% 25.93% 52.70%
##  1072:  19.49% 62.35% 30.93%  6.94% 26.08% 52.70%
##  1073:  19.46% 62.35% 30.72%  6.94% 26.08% 52.70%
##  1074:  19.34% 62.35% 30.30%  6.94% 25.93% 52.70%
##  1075:  19.30% 62.35% 30.30%  6.86% 25.93% 52.70%
##  1076:  19.38% 63.53% 30.51%  6.86% 25.93% 52.70%
##  1077:  19.34% 63.53% 30.30%  6.86% 25.93% 52.70%
##  1078:  19.38% 63.53% 30.30%  6.86% 26.08% 52.70%
##  1079:  19.38% 62.35% 30.30%  6.94% 26.08% 52.70%
##  1080:  19.26% 62.35% 30.08%  6.86% 25.93% 52.70%
##  1081:  19.30% 62.35% 30.08%  6.94% 25.93% 52.70%
##  1082:  19.34% 62.35% 30.30%  6.94% 25.93% 52.70%
##  1083:  19.34% 62.35% 30.30%  6.94% 25.93% 52.70%
##  1084:  19.30% 62.35% 30.08%  6.94% 25.93% 52.70%
##  1085:  19.42% 62.35% 30.51%  6.94% 26.08% 52.70%
##  1086:  19.22% 61.18% 30.08%  6.94% 25.78% 52.70%
##  1087:  19.22% 61.18% 30.30%  6.86% 25.78% 52.70%
##  1088:  19.18% 61.18% 30.08%  6.86% 25.78% 52.70%
##  1089:  19.14% 61.18% 30.08%  6.86% 25.63% 52.70%
##  1090:  19.18% 61.18% 30.08%  6.78% 25.93% 52.70%
##  1091:  19.34% 61.18% 30.08%  7.02% 26.08% 52.70%
##  1092:  19.18% 61.18% 29.87%  6.94% 25.78% 52.70%
##  1093:  19.22% 61.18% 30.30%  6.78% 25.93% 52.70%
##  1094:  19.22% 61.18% 30.08%  6.86% 25.93% 52.70%
##  1095:  19.22% 61.18% 30.08%  6.86% 25.93% 52.70%
##  1096:  19.38% 61.18% 30.72%  6.86% 26.08% 52.70%
##  1097:  19.26% 61.18% 30.30%  6.86% 25.93% 52.70%
##  1098:  19.30% 62.35% 29.87%  6.94% 26.08% 52.70%
##  1099:  19.38% 61.18% 30.72%  6.94% 25.93% 52.70%
##  1100:  19.34% 62.35% 30.30%  6.86% 26.08% 52.70%
##  1101:  19.26% 61.18% 30.30%  6.86% 25.93% 52.70%
##  1102:  19.30% 61.18% 30.30%  6.94% 25.93% 52.70%
##  1103:  19.26% 61.18% 30.30%  6.86% 25.93% 52.70%
##  1104:  19.30% 61.18% 30.30%  6.94% 25.93% 52.70%
##  1105:  19.34% 62.35% 30.30%  6.94% 25.93% 52.70%
##  1106:  19.49% 62.35% 30.93%  6.94% 26.08% 52.70%
##  1107:  19.42% 63.53% 30.51%  6.94% 25.93% 52.70%
##  1108:  19.42% 63.53% 30.51%  6.94% 25.93% 52.70%
##  1109:  19.34% 62.35% 30.30%  6.94% 25.93% 52.70%
##  1110:  19.34% 62.35% 30.30%  6.94% 25.93% 52.70%
##  1111:  19.38% 62.35% 30.51%  6.94% 25.93% 52.70%
##  1112:  19.30% 62.35% 30.30%  6.94% 25.78% 52.70%
##  1113:  19.42% 63.53% 30.51%  6.94% 25.93% 52.70%
##  1114:  19.34% 62.35% 30.51%  6.94% 25.78% 52.70%
##  1115:  19.38% 62.35% 30.51%  7.02% 25.78% 52.70%
##  1116:  19.38% 63.53% 30.30%  7.02% 25.78% 52.70%
##  1117:  19.46% 64.71% 30.51%  7.02% 25.78% 52.70%
##  1118:  19.38% 62.35% 30.51%  7.02% 25.78% 52.70%
##  1119:  19.38% 63.53% 30.30%  7.02% 25.78% 52.70%
##  1120:  19.34% 63.53% 30.30%  6.94% 25.78% 52.70%
##  1121:  19.46% 64.71% 30.30%  7.10% 25.78% 52.70%
##  1122:  19.42% 64.71% 30.30%  7.02% 25.78% 52.70%
##  1123:  19.42% 64.71% 30.30%  7.02% 25.78% 52.70%
##  1124:  19.34% 63.53% 30.30%  6.94% 25.78% 52.70%
##  1125:  19.46% 64.71% 30.30%  7.10% 25.78% 52.70%
##  1126:  19.38% 64.71% 30.08%  7.02% 25.78% 52.70%
##  1127:  19.42% 64.71% 30.30%  7.02% 25.78% 52.70%
##  1128:  19.34% 64.71% 30.08%  7.02% 25.63% 52.70%
##  1129:  19.38% 64.71% 30.30%  7.02% 25.63% 52.70%
##  1130:  19.34% 64.71% 30.30%  7.02% 25.48% 52.70%
##  1131:  19.34% 64.71% 30.30%  7.02% 25.48% 52.70%
##  1132:  19.30% 64.71% 30.08%  7.02% 25.48% 52.70%
##  1133:  19.26% 64.71% 30.30%  6.86% 25.48% 52.70%
##  1134:  19.34% 64.71% 30.51%  6.86% 25.63% 52.70%
##  1135:  19.30% 63.53% 30.30%  6.94% 25.63% 52.70%
##  1136:  19.26% 63.53% 30.30%  6.86% 25.63% 52.70%
##  1137:  19.18% 63.53% 30.30%  6.86% 25.34% 52.70%
##  1138:  19.22% 63.53% 30.08%  6.94% 25.48% 52.70%
##  1139:  19.30% 64.71% 30.30%  6.94% 25.48% 52.70%
##  1140:  19.34% 63.53% 30.30%  6.94% 25.78% 52.70%
##  1141:  19.38% 63.53% 30.51%  6.94% 25.78% 52.70%
##  1142:  19.38% 63.53% 30.30%  7.02% 25.78% 52.70%
##  1143:  19.34% 63.53% 30.30%  6.94% 25.78% 52.70%
##  1144:  19.34% 63.53% 30.72%  6.86% 25.63% 52.70%
##  1145:  19.38% 63.53% 30.51%  6.94% 25.78% 52.70%
##  1146:  19.34% 63.53% 30.51%  6.86% 25.78% 52.70%
##  1147:  19.30% 63.53% 30.51%  6.86% 25.63% 52.70%
##  1148:  19.34% 63.53% 30.51%  6.94% 25.63% 52.70%
##  1149:  19.26% 63.53% 30.30%  6.86% 25.63% 52.70%
##  1150:  19.34% 64.71% 30.30%  6.86% 25.78% 52.70%
##  1151:  19.34% 63.53% 30.51%  6.86% 25.78% 52.70%
##  1152:  19.42% 63.53% 30.93%  6.94% 25.63% 52.70%
##  1153:  19.30% 63.53% 30.72%  6.86% 25.48% 52.70%
##  1154:  19.34% 63.53% 30.72%  6.94% 25.48% 52.70%
##  1155:  19.34% 63.53% 30.72%  6.94% 25.48% 52.70%
##  1156:  19.46% 63.53% 30.93%  6.94% 25.78% 52.70%
##  1157:  19.42% 63.53% 30.93%  6.86% 25.78% 52.70%
##  1158:  19.42% 63.53% 30.93%  6.86% 25.78% 52.70%
##  1159:  19.46% 63.53% 30.93%  6.94% 25.78% 52.70%
##  1160:  19.46% 63.53% 30.93%  6.94% 25.78% 52.70%
##  1161:  19.46% 63.53% 30.93%  6.94% 25.78% 52.70%
##  1162:  19.38% 63.53% 30.51%  6.94% 25.78% 52.70%
##  1163:  19.38% 63.53% 30.51%  6.94% 25.78% 52.70%
##  1164:  19.42% 63.53% 30.72%  6.94% 25.78% 52.70%
##  1165:  19.42% 63.53% 30.72%  6.94% 25.78% 52.70%
##  1166:  19.42% 63.53% 30.72%  6.94% 25.78% 52.70%
##  1167:  19.42% 63.53% 30.72%  6.94% 25.78% 52.70%
##  1168:  19.42% 63.53% 30.72%  6.94% 25.78% 52.70%
##  1169:  19.38% 63.53% 30.30%  7.02% 25.78% 52.70%
##  1170:  19.34% 63.53% 30.51%  6.94% 25.63% 52.70%
##  1171:  19.38% 63.53% 30.51%  7.02% 25.63% 52.70%
##  1172:  19.34% 63.53% 30.30%  7.02% 25.63% 52.70%
##  1173:  19.22% 63.53% 30.08%  6.94% 25.48% 52.70%
##  1174:  19.34% 63.53% 30.30%  7.02% 25.63% 52.70%
##  1175:  19.30% 64.71% 30.08%  6.94% 25.63% 52.70%
##  1176:  19.38% 64.71% 30.30%  7.02% 25.63% 52.70%
##  1177:  19.30% 64.71% 30.08%  6.94% 25.63% 52.70%
##  1178:  19.30% 64.71% 30.08%  6.94% 25.63% 52.70%
##  1179:  19.38% 64.71% 30.51%  6.94% 25.63% 52.70%
##  1180:  19.34% 64.71% 30.51%  6.86% 25.63% 52.70%
##  1181:  19.38% 64.71% 30.51%  7.02% 25.48% 52.70%
##  1182:  19.38% 64.71% 30.51%  7.02% 25.48% 52.70%
##  1183:  19.38% 64.71% 30.51%  7.02% 25.48% 52.70%
##  1184:  19.34% 64.71% 30.51%  6.94% 25.48% 52.70%
##  1185:  19.26% 64.71% 30.51%  6.78% 25.48% 52.70%
##  1186:  19.38% 64.71% 30.30%  7.02% 25.63% 52.70%
##  1187:  19.34% 64.71% 30.51%  6.86% 25.63% 52.70%
##  1188:  19.38% 64.71% 30.51%  6.94% 25.63% 52.70%
##  1189:  19.38% 64.71% 30.72%  6.86% 25.63% 52.70%
##  1190:  19.30% 64.71% 30.30%  6.86% 25.63% 52.70%
##  1191:  19.34% 64.71% 30.51%  6.86% 25.63% 52.70%
##  1192:  19.30% 64.71% 30.30%  6.86% 25.63% 52.70%
##  1193:  19.42% 63.53% 30.93%  7.02% 25.48% 52.70%
##  1194:  19.26% 63.53% 30.08%  6.94% 25.63% 52.70%
##  1195:  19.38% 63.53% 30.51%  7.02% 25.63% 52.70%
##  1196:  19.53% 64.71% 31.14%  7.02% 25.63% 52.70%
##  1197:  19.46% 63.53% 30.93%  6.94% 25.78% 52.70%
##  1198:  19.46% 63.53% 30.72%  7.02% 25.78% 52.70%
##  1199:  19.46% 64.71% 30.72%  7.02% 25.63% 52.70%
##  1200:  19.38% 63.53% 30.72%  6.94% 25.63% 52.70%
##  1201:  19.42% 63.53% 30.93%  6.94% 25.63% 52.70%
##  1202:  19.42% 63.53% 30.72%  7.02% 25.63% 52.70%
##  1203:  19.30% 63.53% 30.72%  6.78% 25.63% 52.70%
##  1204:  19.34% 63.53% 30.72%  6.86% 25.63% 52.70%
##  1205:  19.22% 62.35% 30.51%  6.78% 25.63% 52.70%
##  1206:  19.22% 63.53% 30.08%  6.78% 25.78% 52.70%
##  1207:  19.30% 63.53% 30.51%  6.78% 25.78% 52.70%
##  1208:  19.30% 62.35% 30.51%  6.78% 25.93% 52.70%
##  1209:  19.30% 63.53% 30.51%  6.86% 25.63% 52.70%
##  1210:  19.38% 62.35% 30.72%  6.94% 25.78% 52.70%
##  1211:  19.38% 62.35% 30.51%  6.94% 25.93% 52.70%
##  1212:  19.42% 63.53% 30.72%  6.94% 25.78% 52.70%
##  1213:  19.34% 62.35% 30.72%  6.86% 25.78% 52.70%
##  1214:  19.38% 63.53% 30.51%  6.86% 25.93% 52.70%
##  1215:  19.42% 62.35% 30.72%  6.94% 25.93% 52.70%
##  1216:  19.26% 62.35% 30.08%  6.86% 25.93% 52.70%
##  1217:  19.30% 62.35% 30.08%  6.94% 25.93% 52.70%
##  1218:  19.34% 62.35% 30.08%  6.94% 26.08% 52.70%
##  1219:  19.42% 63.53% 30.08%  7.02% 26.08% 52.70%
##  1220:  19.38% 63.53% 30.08%  6.94% 26.08% 52.70%
##  1221:  19.34% 63.53% 30.08%  6.94% 25.93% 52.70%
##  1222:  19.38% 63.53% 30.08%  6.94% 26.08% 52.70%
##  1223:  19.38% 63.53% 30.08%  6.86% 26.23% 52.70%
##  1224:  19.34% 63.53% 29.87%  6.94% 26.08% 52.70%
##  1225:  19.49% 63.53% 30.72%  6.94% 26.08% 52.70%
##  1226:  19.42% 63.53% 30.51%  6.94% 25.93% 52.70%
##  1227:  19.30% 63.53% 30.51%  6.94% 25.48% 52.70%
##  1228:  19.38% 63.53% 30.51%  6.94% 25.78% 52.70%
##  1229:  19.30% 63.53% 30.51%  6.94% 25.48% 52.70%
##  1230:  19.38% 63.53% 30.51%  7.02% 25.63% 52.70%
##  1231:  19.34% 63.53% 30.51%  6.94% 25.63% 52.70%
##  1232:  19.46% 63.53% 30.51%  7.02% 25.93% 52.70%
##  1233:  19.53% 63.53% 30.72%  7.02% 26.08% 52.70%
##  1234:  19.34% 63.53% 30.30%  7.02% 25.63% 52.70%
##  1235:  19.26% 63.53% 30.08%  7.02% 25.48% 52.70%
##  1236:  19.38% 63.53% 30.08%  7.02% 25.93% 52.70%
##  1237:  19.38% 63.53% 30.08%  7.02% 25.93% 52.70%
##  1238:  19.34% 63.53% 30.08%  7.02% 25.78% 52.70%
##  1239:  19.34% 63.53% 30.08%  7.02% 25.78% 52.70%
##  1240:  19.34% 63.53% 30.08%  7.02% 25.78% 52.70%
##  1241:  19.34% 63.53% 29.87%  7.02% 25.93% 52.70%
##  1242:  19.30% 63.53% 29.87%  7.02% 25.78% 52.70%
##  1243:  19.30% 63.53% 29.87%  7.02% 25.78% 52.70%
##  1244:  19.34% 63.53% 30.08%  7.02% 25.78% 52.70%
##  1245:  19.38% 63.53% 30.30%  7.02% 25.78% 52.70%
##  1246:  19.42% 63.53% 30.30%  7.02% 25.93% 52.70%
##  1247:  19.38% 63.53% 30.08%  7.02% 25.93% 52.70%
##  1248:  19.38% 63.53% 30.30%  6.94% 25.93% 52.70%
##  1249:  19.38% 63.53% 30.30%  6.94% 25.93% 52.70%
##  1250:  19.38% 63.53% 30.30%  6.94% 25.93% 52.70%
##  1251:  19.38% 63.53% 30.30%  6.94% 25.93% 52.70%
##  1252:  19.46% 63.53% 30.51%  7.02% 25.93% 52.70%
##  1253:  19.42% 63.53% 30.51%  6.94% 25.93% 52.70%
##  1254:  19.38% 63.53% 30.30%  6.94% 25.93% 52.70%
##  1255:  19.42% 63.53% 30.30%  7.02% 25.93% 52.70%
##  1256:  19.42% 63.53% 30.51%  6.94% 25.93% 52.70%
##  1257:  19.38% 63.53% 30.51%  6.94% 25.78% 52.70%
##  1258:  19.34% 63.53% 30.30%  6.94% 25.78% 52.70%
##  1259:  19.34% 63.53% 30.51%  6.86% 25.78% 52.70%
##  1260:  19.34% 63.53% 30.30%  6.94% 25.78% 52.70%
##  1261:  19.34% 63.53% 30.51%  6.86% 25.78% 52.70%
##  1262:  19.38% 63.53% 30.51%  6.94% 25.78% 52.70%
##  1263:  19.34% 63.53% 30.30%  6.94% 25.78% 52.70%
##  1264:  19.30% 63.53% 30.30%  6.86% 25.78% 52.70%
##  1265:  19.30% 63.53% 30.30%  6.86% 25.78% 52.70%
##  1266:  19.30% 63.53% 30.30%  6.86% 25.78% 52.70%
##  1267:  19.34% 63.53% 30.30%  6.94% 25.78% 52.70%
##  1268:  19.30% 63.53% 30.30%  6.86% 25.78% 52.70%
##  1269:  19.30% 63.53% 30.30%  6.86% 25.78% 52.70%
##  1270:  19.30% 63.53% 30.30%  6.86% 25.78% 52.70%
##  1271:  19.30% 63.53% 30.30%  6.86% 25.78% 52.70%
##  1272:  19.30% 63.53% 30.30%  6.86% 25.78% 52.70%
##  1273:  19.30% 63.53% 30.30%  6.86% 25.78% 52.70%
##  1274:  19.34% 63.53% 30.30%  6.94% 25.78% 52.70%
##  1275:  19.34% 63.53% 30.30%  6.94% 25.78% 52.70%
##  1276:  19.30% 63.53% 30.30%  6.86% 25.78% 52.70%
##  1277:  19.34% 63.53% 30.30%  6.94% 25.78% 52.70%
##  1278:  19.26% 63.53% 30.30%  6.78% 25.78% 52.70%
##  1279:  19.26% 63.53% 30.30%  6.86% 25.63% 52.70%
##  1280:  19.22% 63.53% 30.30%  6.78% 25.63% 52.70%
##  1281:  19.30% 63.53% 30.30%  6.86% 25.78% 52.70%
##  1282:  19.38% 63.53% 30.30%  7.02% 25.78% 52.70%
##  1283:  19.38% 63.53% 30.30%  7.02% 25.78% 52.70%
##  1284:  19.38% 63.53% 30.30%  7.02% 25.78% 52.70%
##  1285:  19.38% 63.53% 30.30%  7.02% 25.78% 52.70%
##  1286:  19.38% 63.53% 30.30%  7.02% 25.78% 52.70%
##  1287:  19.38% 63.53% 30.30%  7.02% 25.78% 52.70%
##  1288:  19.38% 63.53% 30.30%  7.02% 25.78% 52.70%
##  1289:  19.42% 63.53% 30.51%  7.02% 25.78% 52.70%
##  1290:  19.34% 63.53% 30.30%  6.94% 25.78% 52.70%
##  1291:  19.38% 63.53% 30.30%  7.02% 25.78% 52.70%
##  1292:  19.38% 63.53% 30.30%  7.02% 25.78% 52.70%
##  1293:  19.38% 63.53% 30.30%  7.02% 25.78% 52.70%
##  1294:  19.38% 63.53% 30.30%  7.02% 25.78% 52.70%
##  1295:  19.38% 63.53% 30.30%  7.02% 25.78% 52.70%
##  1296:  19.34% 63.53% 30.30%  6.94% 25.78% 52.70%
##  1297:  19.30% 63.53% 30.08%  7.02% 25.63% 52.70%
##  1298:  19.26% 63.53% 30.08%  6.94% 25.63% 52.70%
##  1299:  19.34% 63.53% 30.30%  6.94% 25.78% 52.70%
##  1300:  19.30% 63.53% 30.08%  6.94% 25.78% 52.70%
##  1301:  19.34% 63.53% 30.08%  7.02% 25.78% 52.70%
##  1302:  19.34% 63.53% 30.08%  7.02% 25.63% 54.05%
##  1303:  19.38% 63.53% 30.08%  7.02% 25.78% 54.05%
##  1304:  19.38% 63.53% 30.08%  7.02% 25.78% 54.05%
##  1305:  19.38% 63.53% 30.08%  7.02% 25.78% 54.05%
##  1306:  19.42% 63.53% 30.30%  7.02% 25.78% 54.05%
##  1307:  19.42% 63.53% 30.30%  7.10% 25.78% 52.70%
##  1308:  19.42% 63.53% 30.30%  7.10% 25.78% 52.70%
##  1309:  19.38% 63.53% 30.08%  7.10% 25.63% 54.05%
##  1310:  19.38% 63.53% 29.87%  7.10% 25.78% 54.05%
##  1311:  19.46% 63.53% 30.51%  7.02% 25.78% 54.05%
##  1312:  19.46% 63.53% 30.30%  7.10% 25.78% 54.05%
##  1313:  19.42% 63.53% 30.08%  7.10% 25.78% 54.05%
##  1314:  19.46% 63.53% 30.30%  7.10% 25.78% 54.05%
##  1315:  19.49% 63.53% 30.51%  7.10% 25.78% 54.05%
##  1316:  19.42% 63.53% 30.30%  7.02% 25.78% 54.05%
##  1317:  19.42% 63.53% 30.30%  7.02% 25.78% 54.05%
##  1318:  19.38% 63.53% 30.30%  7.02% 25.63% 54.05%
##  1319:  19.38% 63.53% 30.51%  6.94% 25.63% 54.05%
##  1320:  19.42% 63.53% 30.51%  7.02% 25.63% 54.05%
##  1321:  19.46% 63.53% 30.51%  7.10% 25.63% 54.05%
##  1322:  19.49% 63.53% 30.51%  7.10% 25.78% 54.05%
##  1323:  19.42% 63.53% 30.30%  7.10% 25.63% 54.05%
##  1324:  19.42% 63.53% 30.30%  7.10% 25.63% 54.05%
##  1325:  19.38% 63.53% 30.30%  7.10% 25.48% 54.05%
##  1326:  19.42% 63.53% 30.30%  7.10% 25.63% 54.05%
##  1327:  19.42% 63.53% 30.51%  7.10% 25.48% 54.05%
##  1328:  19.46% 63.53% 30.51%  7.10% 25.63% 54.05%
##  1329:  19.46% 63.53% 30.51%  7.10% 25.63% 54.05%
##  1330:  19.42% 63.53% 30.51%  7.02% 25.63% 54.05%
##  1331:  19.46% 63.53% 30.51%  7.10% 25.63% 54.05%
##  1332:  19.46% 63.53% 30.51%  7.10% 25.63% 54.05%
##  1333:  19.49% 63.53% 30.51%  7.18% 25.63% 54.05%
##  1334:  19.42% 63.53% 30.51%  7.02% 25.63% 54.05%
##  1335:  19.53% 63.53% 30.72%  7.18% 25.63% 54.05%
##  1336:  19.53% 63.53% 30.72%  7.18% 25.63% 54.05%
##  1337:  19.49% 63.53% 30.51%  7.18% 25.63% 54.05%
##  1338:  19.46% 63.53% 30.51%  7.10% 25.63% 54.05%
##  1339:  19.42% 63.53% 30.51%  7.10% 25.48% 54.05%
##  1340:  19.42% 63.53% 30.51%  7.10% 25.48% 54.05%
##  1341:  19.34% 63.53% 30.51%  7.02% 25.34% 54.05%
##  1342:  19.42% 63.53% 30.51%  7.10% 25.48% 54.05%
##  1343:  19.42% 63.53% 30.51%  7.10% 25.48% 54.05%
##  1344:  19.46% 63.53% 30.72%  7.10% 25.48% 54.05%
##  1345:  19.38% 63.53% 30.51%  7.10% 25.34% 54.05%
##  1346:  19.49% 63.53% 30.72%  7.18% 25.48% 54.05%
##  1347:  19.46% 63.53% 30.51%  7.18% 25.48% 54.05%
##  1348:  19.42% 63.53% 30.51%  7.18% 25.34% 54.05%
##  1349:  19.42% 63.53% 30.72%  7.10% 25.34% 54.05%
##  1350:  19.38% 63.53% 30.51%  7.10% 25.34% 54.05%
##  1351:  19.38% 63.53% 30.51%  7.10% 25.34% 54.05%
##  1352:  19.38% 63.53% 30.51%  7.10% 25.34% 54.05%
##  1353:  19.42% 63.53% 30.51%  7.10% 25.48% 54.05%
##  1354:  19.46% 63.53% 30.51%  7.18% 25.48% 54.05%
##  1355:  19.53% 63.53% 30.72%  7.26% 25.48% 54.05%
##  1356:  19.42% 63.53% 30.30%  7.18% 25.48% 54.05%
##  1357:  19.42% 63.53% 30.51%  7.10% 25.48% 54.05%
##  1358:  19.46% 63.53% 30.72%  7.10% 25.48% 54.05%
##  1359:  19.46% 63.53% 30.51%  7.18% 25.48% 54.05%
##  1360:  19.46% 63.53% 30.51%  7.18% 25.48% 54.05%
##  1361:  19.46% 63.53% 30.51%  7.18% 25.48% 54.05%
##  1362:  19.46% 63.53% 30.51%  7.18% 25.48% 54.05%
##  1363:  19.49% 63.53% 30.72%  7.18% 25.48% 54.05%
##  1364:  19.42% 63.53% 30.30%  7.18% 25.48% 54.05%
##  1365:  19.42% 63.53% 30.30%  7.18% 25.48% 54.05%
##  1366:  19.46% 63.53% 30.51%  7.18% 25.48% 54.05%
##  1367:  19.34% 63.53% 30.30%  7.18% 25.34% 52.70%
##  1368:  19.38% 63.53% 30.30%  7.18% 25.48% 52.70%
##  1369:  19.46% 63.53% 30.51%  7.18% 25.48% 54.05%
##  1370:  19.42% 63.53% 30.08%  7.26% 25.48% 54.05%
##  1371:  19.46% 63.53% 30.30%  7.26% 25.48% 54.05%
##  1372:  19.42% 63.53% 30.30%  7.18% 25.48% 54.05%
##  1373:  19.42% 63.53% 30.30%  7.18% 25.48% 54.05%
##  1374:  19.38% 63.53% 30.30%  7.18% 25.34% 54.05%
##  1375:  19.46% 63.53% 30.51%  7.18% 25.48% 54.05%
##  1376:  19.49% 63.53% 30.51%  7.26% 25.48% 54.05%
##  1377:  19.42% 63.53% 30.30%  7.18% 25.48% 54.05%
##  1378:  19.46% 63.53% 30.51%  7.18% 25.48% 54.05%
##  1379:  19.34% 63.53% 29.87%  7.18% 25.48% 54.05%
##  1380:  19.34% 63.53% 29.87%  7.18% 25.48% 54.05%
##  1381:  19.34% 63.53% 29.87%  7.18% 25.48% 54.05%
##  1382:  19.38% 63.53% 30.08%  7.18% 25.48% 54.05%
##  1383:  19.34% 63.53% 29.87%  7.18% 25.48% 54.05%
##  1384:  19.38% 63.53% 30.08%  7.18% 25.48% 54.05%
##  1385:  19.42% 63.53% 30.08%  7.26% 25.48% 54.05%
##  1386:  19.46% 63.53% 30.30%  7.26% 25.48% 54.05%
##  1387:  19.34% 63.53% 30.30%  7.18% 25.19% 54.05%
##  1388:  19.38% 63.53% 30.30%  7.18% 25.34% 54.05%
##  1389:  19.38% 63.53% 30.30%  7.18% 25.34% 54.05%
##  1390:  19.38% 63.53% 30.30%  7.18% 25.34% 54.05%
##  1391:  19.38% 63.53% 30.30%  7.18% 25.34% 54.05%
##  1392:  19.42% 63.53% 30.51%  7.18% 25.34% 54.05%
##  1393:  19.46% 63.53% 30.51%  7.18% 25.48% 54.05%
##  1394:  19.30% 63.53% 30.08%  7.18% 25.19% 54.05%
##  1395:  19.30% 63.53% 30.08%  7.18% 25.19% 54.05%
##  1396:  19.26% 63.53% 30.08%  7.18% 25.04% 54.05%
##  1397:  19.26% 63.53% 30.08%  7.10% 25.19% 54.05%
##  1398:  19.34% 63.53% 30.30%  7.18% 25.19% 54.05%
##  1399:  19.30% 63.53% 30.30%  7.02% 25.34% 54.05%
##  1400:  19.30% 63.53% 30.08%  7.18% 25.19% 54.05%
##  1401:  19.22% 63.53% 30.08%  7.10% 25.04% 54.05%
##  1402:  19.30% 63.53% 30.08%  7.18% 25.19% 54.05%
##  1403:  19.34% 63.53% 30.08%  7.18% 25.34% 54.05%
##  1404:  19.30% 63.53% 30.30%  7.10% 25.19% 54.05%
##  1405:  19.38% 63.53% 30.30%  7.18% 25.34% 54.05%
##  1406:  19.42% 63.53% 30.30%  7.26% 25.34% 54.05%
##  1407:  19.26% 63.53% 30.08%  7.10% 25.19% 54.05%
##  1408:  19.34% 63.53% 30.08%  7.18% 25.34% 54.05%
##  1409:  19.34% 63.53% 30.08%  7.18% 25.34% 54.05%
##  1410:  19.26% 63.53% 30.08%  7.18% 25.04% 54.05%
##  1411:  19.30% 63.53% 30.08%  7.10% 25.34% 54.05%
##  1412:  19.26% 63.53% 30.08%  7.18% 25.04% 54.05%
##  1413:  19.34% 63.53% 30.08%  7.10% 25.48% 54.05%
##  1414:  19.42% 63.53% 30.08%  7.18% 25.63% 54.05%
##  1415:  19.38% 63.53% 30.30%  7.26% 25.19% 54.05%
##  1416:  19.38% 63.53% 30.51%  7.18% 25.19% 54.05%
##  1417:  19.34% 63.53% 30.51%  7.18% 25.04% 54.05%
##  1418:  19.38% 63.53% 30.72%  7.10% 25.19% 54.05%
##  1419:  19.49% 63.53% 30.72%  7.26% 25.34% 54.05%
##  1420:  19.38% 63.53% 30.30%  7.26% 25.19% 54.05%
##  1421:  19.34% 63.53% 30.30%  7.18% 25.19% 54.05%
##  1422:  19.18% 63.53% 30.08%  7.18% 24.74% 54.05%
##  1423:  19.26% 63.53% 30.08%  7.26% 24.89% 54.05%
##  1424:  19.30% 63.53% 30.08%  7.26% 25.04% 54.05%
##  1425:  19.26% 63.53% 30.08%  7.18% 25.04% 54.05%
##  1426:  19.30% 63.53% 30.08%  7.18% 25.19% 54.05%
##  1427:  19.22% 63.53% 29.87%  7.18% 25.04% 54.05%
##  1428:  19.34% 63.53% 30.08%  7.26% 25.19% 54.05%
##  1429:  19.26% 63.53% 30.08%  7.18% 25.04% 54.05%
##  1430:  19.22% 63.53% 29.87%  7.26% 24.89% 54.05%
##  1431:  19.30% 63.53% 30.08%  7.26% 25.04% 54.05%
##  1432:  19.34% 63.53% 30.08%  7.26% 25.19% 54.05%
##  1433:  19.30% 63.53% 30.08%  7.26% 25.04% 54.05%
##  1434:  19.30% 63.53% 29.87%  7.26% 25.19% 54.05%
##  1435:  19.34% 63.53% 30.08%  7.33% 25.04% 54.05%
##  1436:  19.30% 63.53% 29.87%  7.33% 25.04% 54.05%
##  1437:  19.34% 63.53% 30.08%  7.26% 25.19% 54.05%
##  1438:  19.38% 63.53% 30.08%  7.33% 25.19% 54.05%
##  1439:  19.38% 63.53% 30.08%  7.33% 25.19% 54.05%
##  1440:  19.42% 63.53% 30.08%  7.33% 25.34% 54.05%
##  1441:  19.42% 63.53% 30.08%  7.33% 25.34% 54.05%
##  1442:  19.30% 63.53% 30.08%  7.26% 25.04% 54.05%
##  1443:  19.26% 63.53% 30.08%  7.18% 25.04% 54.05%
##  1444:  19.34% 63.53% 30.08%  7.26% 25.19% 54.05%
##  1445:  19.34% 63.53% 30.08%  7.26% 25.19% 54.05%
##  1446:  19.42% 63.53% 30.08%  7.33% 25.34% 54.05%
##  1447:  19.42% 63.53% 30.08%  7.33% 25.34% 54.05%
##  1448:  19.34% 63.53% 30.08%  7.26% 25.19% 54.05%
##  1449:  19.38% 63.53% 30.08%  7.33% 25.19% 54.05%
##  1450:  19.34% 63.53% 29.87%  7.33% 25.19% 54.05%
##  1451:  19.42% 63.53% 30.30%  7.33% 25.19% 54.05%
##  1452:  19.38% 63.53% 30.08%  7.33% 25.19% 54.05%
##  1453:  19.46% 63.53% 30.30%  7.33% 25.34% 54.05%
##  1454:  19.38% 63.53% 30.08%  7.33% 25.19% 54.05%
##  1455:  19.49% 63.53% 30.30%  7.41% 25.34% 54.05%
##  1456:  19.38% 63.53% 30.30%  7.33% 25.04% 54.05%
##  1457:  19.34% 63.53% 30.08%  7.33% 25.04% 54.05%
##  1458:  19.34% 63.53% 30.08%  7.33% 25.04% 54.05%
##  1459:  19.38% 63.53% 30.08%  7.33% 25.19% 54.05%
##  1460:  19.34% 63.53% 30.08%  7.33% 25.04% 54.05%
##  1461:  19.30% 63.53% 30.08%  7.33% 25.04% 52.70%
##  1462:  19.42% 63.53% 30.08%  7.49% 25.04% 54.05%
##  1463:  19.42% 63.53% 30.30%  7.49% 25.04% 52.70%
##  1464:  19.42% 63.53% 30.30%  7.49% 25.04% 52.70%
##  1465:  19.46% 63.53% 30.30%  7.49% 25.04% 54.05%
##  1466:  19.34% 63.53% 30.08%  7.41% 25.04% 52.70%
##  1467:  19.38% 63.53% 30.08%  7.41% 25.04% 54.05%
##  1468:  19.38% 63.53% 30.08%  7.49% 25.04% 52.70%
##  1469:  19.38% 63.53% 30.08%  7.49% 25.04% 52.70%
##  1470:  19.38% 63.53% 30.08%  7.49% 25.04% 52.70%
##  1471:  19.38% 63.53% 30.08%  7.33% 25.19% 54.05%
##  1472:  19.34% 63.53% 30.08%  7.33% 25.19% 52.70%
##  1473:  19.30% 63.53% 29.87%  7.33% 25.19% 52.70%
##  1474:  19.34% 63.53% 30.08%  7.33% 25.19% 52.70%
##  1475:  19.26% 63.53% 29.87%  7.26% 25.19% 52.70%
##  1476:  19.38% 63.53% 30.08%  7.41% 25.19% 52.70%
##  1477:  19.34% 63.53% 30.08%  7.33% 25.19% 52.70%
##  1478:  19.26% 63.53% 29.87%  7.26% 25.19% 52.70%
##  1479:  19.26% 63.53% 29.87%  7.26% 25.19% 52.70%
##  1480:  19.34% 63.53% 30.08%  7.33% 25.19% 52.70%
##  1481:  19.30% 63.53% 29.87%  7.33% 25.19% 52.70%
##  1482:  19.30% 63.53% 29.87%  7.33% 25.19% 52.70%
##  1483:  19.34% 63.53% 29.87%  7.41% 25.19% 52.70%
##  1484:  19.34% 63.53% 29.87%  7.33% 25.34% 52.70%
##  1485:  19.30% 63.53% 29.87%  7.33% 25.19% 52.70%
##  1486:  19.38% 63.53% 29.87%  7.41% 25.34% 52.70%
##  1487:  19.30% 63.53% 29.87%  7.33% 25.19% 52.70%
##  1488:  19.38% 63.53% 29.87%  7.41% 25.34% 52.70%
##  1489:  19.34% 63.53% 29.87%  7.33% 25.34% 52.70%
##  1490:  19.34% 63.53% 29.87%  7.33% 25.34% 52.70%
##  1491:  19.34% 63.53% 29.87%  7.33% 25.34% 52.70%
##  1492:  19.34% 63.53% 29.87%  7.33% 25.34% 52.70%
##  1493:  19.34% 63.53% 29.87%  7.33% 25.34% 52.70%
##  1494:  19.38% 63.53% 29.87%  7.41% 25.34% 52.70%
##  1495:  19.38% 63.53% 29.87%  7.41% 25.34% 52.70%
##  1496:  19.42% 63.53% 30.08%  7.41% 25.34% 52.70%
##  1497:  19.38% 63.53% 29.87%  7.41% 25.34% 52.70%
##  1498:  19.38% 63.53% 29.66%  7.41% 25.48% 52.70%
##  1499:  19.42% 63.53% 29.87%  7.41% 25.48% 52.70%
##  1500:  19.38% 63.53% 29.66%  7.41% 25.48% 52.70%
test3 <- predict(model_rf3, newdata = test)
table(test3, test$Hospital.overall.rating)
##      
## test3   1   2   3   4   5
##     1  13   6   0   0   0
##     2  19 139  14   0   0
##     3   0  67 468  62   0
##     4   0   0  22 231  23
##     5   0   0   0   0  14
summary(model_rf3)
##                 Length Class  Mode     
## call                8  -none- call     
## type                1  -none- character
## predicted        2570  factor numeric  
## err.rate         9000  -none- numeric  
## confusion          30  -none- numeric  
## votes           12850  matrix numeric  
## oob.times        2570  -none- numeric  
## classes             5  -none- character
## importance         53  -none- numeric  
## importanceSD        0  -none- NULL     
## localImportance     0  -none- NULL     
## proximity           0  -none- NULL     
## ntree               1  -none- numeric  
## mtry                1  -none- numeric  
## forest             14  -none- list     
## y                2570  factor numeric  
## test                0  -none- NULL     
## inbag               0  -none- NULL     
## terms               3  terms  call
conf_matrix3 <- confusionMatrix(test3, test$Hospital.overall.rating, positive = "Yes")
conf_matrix3
## Confusion Matrix and Statistics
## 
##           Reference
## Prediction   1   2   3   4   5
##          1  13   6   0   0   0
##          2  19 139  14   0   0
##          3   0  67 468  62   0
##          4   0   0  22 231  23
##          5   0   0   0   0  14
## 
## Overall Statistics
##                                           
##                Accuracy : 0.8024          
##                  95% CI : (0.7774, 0.8258)
##     No Information Rate : 0.4675          
##     P-Value [Acc > NIR] : < 2.2e-16       
##                                           
##                   Kappa : 0.6909          
##                                           
##  Mcnemar's Test P-Value : NA              
## 
## Statistics by Class:
## 
##                      Class: 1 Class: 2 Class: 3 Class: 4 Class: 5
## Sensitivity           0.40625   0.6557   0.9286   0.7884  0.37838
## Specificity           0.99426   0.9619   0.7753   0.9427  1.00000
## Pos Pred Value        0.68421   0.8081   0.7839   0.8370  1.00000
## Neg Pred Value        0.98206   0.9194   0.9252   0.9227  0.97838
## Prevalence            0.02968   0.1967   0.4675   0.2718  0.03432
## Detection Rate        0.01206   0.1289   0.4341   0.2143  0.01299
## Detection Prevalence  0.01763   0.1596   0.5538   0.2560  0.01299
## Balanced Accuracy     0.70026   0.8088   0.8519   0.8655  0.68919
# Confusion Matrix and Statistics
#
#                   Reference
# Prediction   1   2   3   4   5
#          1  13   6   0   0   0
#          2  19 139  14   0   0
#          3   0  67 468  62   0
#          4   0   0  22 231  23
#          5   0   0   0   0  14
#
# Overall Statistics
#
# Accuracy : 0.8024
# 95% CI : (0.7774, 0.8258)
# No Information Rate : 0.4675
# P-Value [Acc > NIR] : < 2.2e-16
#
# Kappa : 0.6909
# Mcnemar's Test P-Value : NA
#
# Statistics by Class:
#
#                       Class: 1 Class: 2 Class: 3 Class: 4 Class: 5
# Sensitivity           0.40625   0.6557   0.9286   0.7884  0.37838
# Specificity           0.99426   0.9619   0.7753   0.9427  1.00000
# Pos Pred Value        0.68421   0.8081   0.7839   0.8370  1.00000
# Neg Pred Value        0.98206   0.9194   0.9252   0.9227  0.97838
# Prevalence            0.02968   0.1967   0.4675   0.2718  0.03432
# Detection Rate        0.01206   0.1289   0.4341   0.2143  0.01299
# Detection Prevalence  0.01763   0.1596   0.5538   0.2560  0.01299
# Balanced Accuracy     0.70026   0.8088   0.8519   0.8655  0.68919

# Accuracy: 80.24%

# We observe 80.24% accuracy with this model, all the classes have good specificity and sensitivity.

print(model_rf3)
## 
## Call:
##  randomForest(formula = Hospital.overall.rating ~ ., data = train,      promiximity = FALSE, ntree = 1500, mtry = 20, do.trace = TRUE,      na.action = na.omit) 
##                Type of random forest: classification
##                      Number of trees: 1500
## No. of variables tried at each split: 20
## 
##         OOB estimate of  error rate: 19.38%
## Confusion matrix:
##    1   2    3   4  5 class.error
## 1 31  54    0   0  0  0.63529412
## 2  5 332  135   0  0  0.29661017
## 3  0  42 1174  52  0  0.07413249
## 4  0   0  169 500  2  0.25484352
## 5  0   0    0  39 35  0.52702703
# Call:
#   randomForest(formula = Hospital.overall.rating ~ ., data = train,      promiximity = FALSE, ntree = 1500, mtry = 20, do.trace = TRUE,      na.action = na.omit)
# Type of random forest: classification
# Number of trees: 1500
# No. of variables tried at each split: 20
#
# OOB estimate of  error rate: 19.38%
# Confusion matrix:
#    1   2    3   4  5 class.error
# 1 31  54    0   0  0  0.63529412
# 2  5 332  135   0  0  0.29661017
# 3  0  42 1174  52  0  0.07413249
# 4  0   0  169 500  2  0.25484352
# 5  0   0    0  39 35  0.52702703

# This plot provides us class errors.
plot(model_rf3)

plot(margin(model_rf3, test$Hospital.overall.rating))

# We see here most of the values >0 mean that the majority was right, hence this has predicted correct

# This plot provides us all the variables as per their importance in the model to predict the ratings.
varImpPlot(model_rf3)

# This provides the top 10 measures which are highly important as per the variance Importance measures.
varImpPlot(model_rf3, main = "Variable Importance of measures using MeanDecreaseGini", sort = T, n.var = 10)

# We have got a good accuracy for this model and as per this model the top 10 variables as per their importance are
# 1.READM_30_HOSP_WIDE 2.PSI_90_SAFETY 3.MORT_30_PN 4.H_HSP_RATING_LINEAR_MEAN 5.H_COMP_7_LINEAR_MEAN
# 6.H_RECMND_LINEAR_MEAN 7.H_COMP_3_LINEAR_MEAN 8.MORT_30_HF 9.H_COMP_1_LINEAR_MEAN 10.MORT_30_COPD
# Overall the model is doing good.

Data Modeling and Evaluation End

Factor Analysis

We will perform Factor analysis for each of the seven groups.

# install.packages("psych")
# install.packages("Information")
library(psych)
## 
## Attaching package: 'psych'
## The following object is masked from 'package:randomForest':
## 
##     outlier
## The following objects are masked from 'package:ggplot2':
## 
##     %+%, alpha
# As per the mentor suggestions we will first calculate the measures for effectiveness group and then create a function to perform the same for all the groups.
# effectiveness scores
effectiveness <- effe_master[, -c(2:8)]
str(effectiveness)
## 'data.frame':    4818 obs. of  19 variables:
##  $ Provider.ID                 : int  10001 10005 10006 10007 10008 10011 10012 10016 10018 10019 ...
##  $ CAC_3_score                 : num  NA NA NA NA NA NA NA NA NA NA ...
##  $ IMM_2_score                 : num  0.364 0.53 0.613 0.53 0.197 ...
##  $ IMM_3_OP_27_FAC_ADHPCT_score: num  -0.233 -0.099 0.169 -2.11 -2.781 ...
##  $ OP_22_score                 : num  -1.201 -0.108 0.438 0.438 0.438 ...
##  $ OP_23_score                 : num  NA 0.783 NA NA NA ...
##  $ OP_29_score                 : num  NA 0.692 -0.102 -2.627 0.836 ...
##  $ OP_30_score                 : num  0.0711 0.5002 0.3285 -3.4479 0.7148 ...
##  $ OP_4_score                  : num  NA 0.546 NA -1.232 NA ...
##  $ PC_01_score                 : num  0.539 0.324 0.539 NA NA ...
##  $ STK_4_score                 : num  -1.23 NA NA NA NA ...
##  $ STK_5_score                 : num  -0.0249 0.1932 0.1932 0.4114 NA ...
##  $ STK_6_score                 : num  0.446 -0.915 0.198 -3.019 NA ...
##  $ STK_8_score                 : num  -0.57 0.618 -0.296 NA NA ...
##  $ VTE_1_score                 : num  0.334 0.178 0.412 0.334 0.489 ...
##  $ VTE_2_score                 : num  0.381 -0.45 -1.282 0.381 NA ...
##  $ VTE_3_score                 : num  -0.278 0.819 -0.887 NA NA ...
##  $ VTE_5_score                 : num  -0.2536 0.6352 -0.0759 NA NA ...
##  $ VTE_6_score                 : num  0.416 NA 0.416 NA NA ...
# remove the Provider.ID column
eff <- effectiveness[, -1]
str(eff)
## 'data.frame':    4818 obs. of  18 variables:
##  $ CAC_3_score                 : num  NA NA NA NA NA NA NA NA NA NA ...
##  $ IMM_2_score                 : num  0.364 0.53 0.613 0.53 0.197 ...
##  $ IMM_3_OP_27_FAC_ADHPCT_score: num  -0.233 -0.099 0.169 -2.11 -2.781 ...
##  $ OP_22_score                 : num  -1.201 -0.108 0.438 0.438 0.438 ...
##  $ OP_23_score                 : num  NA 0.783 NA NA NA ...
##  $ OP_29_score                 : num  NA 0.692 -0.102 -2.627 0.836 ...
##  $ OP_30_score                 : num  0.0711 0.5002 0.3285 -3.4479 0.7148 ...
##  $ OP_4_score                  : num  NA 0.546 NA -1.232 NA ...
##  $ PC_01_score                 : num  0.539 0.324 0.539 NA NA ...
##  $ STK_4_score                 : num  -1.23 NA NA NA NA ...
##  $ STK_5_score                 : num  -0.0249 0.1932 0.1932 0.4114 NA ...
##  $ STK_6_score                 : num  0.446 -0.915 0.198 -3.019 NA ...
##  $ STK_8_score                 : num  -0.57 0.618 -0.296 NA NA ...
##  $ VTE_1_score                 : num  0.334 0.178 0.412 0.334 0.489 ...
##  $ VTE_2_score                 : num  0.381 -0.45 -1.282 0.381 NA ...
##  $ VTE_3_score                 : num  -0.278 0.819 -0.887 NA NA ...
##  $ VTE_5_score                 : num  -0.2536 0.6352 -0.0759 NA NA ...
##  $ VTE_6_score                 : num  0.416 NA 0.416 NA NA ...
#scale the data
eff <- as.data.frame(scale(eff))
str(eff)
## 'data.frame':    4818 obs. of  18 variables:
##  $ CAC_3_score                 : num  NA NA NA NA NA NA NA NA NA NA ...
##  $ IMM_2_score                 : num  0.364 0.53 0.614 0.53 0.197 ...
##  $ IMM_3_OP_27_FAC_ADHPCT_score: num  -0.2335 -0.0993 0.1691 -2.1121 -2.783 ...
##  $ OP_22_score                 : num  -1.261 -0.117 0.455 0.455 0.455 ...
##  $ OP_23_score                 : num  NA 0.783 NA NA NA ...
##  $ OP_29_score                 : num  NA 0.692 -0.102 -2.627 0.836 ...
##  $ OP_30_score                 : num  0.0711 0.5002 0.3285 -3.4479 0.7148 ...
##  $ OP_4_score                  : num  NA 0.547 NA -1.238 NA ...
##  $ PC_01_score                 : num  0.568 0.339 0.568 NA NA ...
##  $ STK_4_score                 : num  -1.23 NA NA NA NA ...
##  $ STK_5_score                 : num  -0.0337 0.2084 0.2084 0.4505 NA ...
##  $ STK_6_score                 : num  0.447 -0.921 0.199 -3.035 NA ...
##  $ STK_8_score                 : num  -0.573 0.62 -0.298 NA NA ...
##  $ VTE_1_score                 : num  0.334 0.178 0.412 0.334 0.489 ...
##  $ VTE_2_score                 : num  0.398 -0.481 -1.361 0.398 NA ...
##  $ VTE_3_score                 : num  -0.279 0.822 -0.892 NA NA ...
##  $ VTE_5_score                 : num  -0.2556 0.6375 -0.0769 NA NA ...
##  $ VTE_6_score                 : num  0.469 NA 0.469 NA NA ...
# Using psych package, apply factor analysis on eff
# This command was provided by the mentor. We have to use the method=ML (maximum likelihood) and scores="tenBerge"
Eff.fa <- fa(eff, method = "ml", scores = "tenBerge")

# finding the weights
eff_weights <- Eff.fa$weights
eff_weights
##                                       MR1
## CAC_3_score                  -0.042718102
## IMM_2_score                   0.098638505
## IMM_3_OP_27_FAC_ADHPCT_score -0.002136510
## OP_22_score                   0.069139536
## OP_23_score                   0.026341891
## OP_29_score                   0.002926853
## OP_30_score                   0.043306208
## OP_4_score                   -0.061446640
## PC_01_score                   0.012382577
## STK_4_score                   0.045332087
## STK_5_score                   0.032026744
## STK_6_score                   0.252498944
## STK_8_score                   0.158140046
## VTE_1_score                   0.570885300
## VTE_2_score                  -0.003504823
## VTE_3_score                   0.056708361
## VTE_5_score                   0.041493877
## VTE_6_score                   0.053009641
sum(eff_weights)
## [1] 1.353024
# [1] 1.353024
# The sum value is supposed to be 1
eff_weights <- eff_weights / sum(eff_weights)
sum(eff_weights)
## [1] 1
# CMS says a hospital needs to have at least 3 measures per group
# Rows with attribute values having more than 3 NA's are removed(Removing all such hospitals)

eff$remove <- 0

for (x in 1:nrow(eff)) {
  if (sum(!is.na(eff[x,])) <= 3) { eff[x, c("remove")] = 1 }
  else { eff[x, c("remove")] = 0 }
}

round(sum(eff$remove) / nrow(eff) * 100, 2)
## [1] 22.31
# [1] 22.31
# Thus, about 22% hospitals are not valid as per CMS restrictions.

row_num <- which(!eff$remove)


eff <- eff[which(!eff$remove),]
sum(eff$remove)
## [1] 0
# [1] 0
eff <- eff[, -ncol(eff)]
str(eff)
## 'data.frame':    3743 obs. of  18 variables:
##  $ CAC_3_score                 : num  NA NA NA NA NA NA NA NA NA NA ...
##  $ IMM_2_score                 : num  0.364 0.53 0.614 0.53 0.197 ...
##  $ IMM_3_OP_27_FAC_ADHPCT_score: num  -0.2335 -0.0993 0.1691 -2.1121 -2.783 ...
##  $ OP_22_score                 : num  -1.261 -0.117 0.455 0.455 0.455 ...
##  $ OP_23_score                 : num  NA 0.783 NA NA NA ...
##  $ OP_29_score                 : num  NA 0.692 -0.102 -2.627 0.836 ...
##  $ OP_30_score                 : num  0.0711 0.5002 0.3285 -3.4479 0.7148 ...
##  $ OP_4_score                  : num  NA 0.547 NA -1.238 NA ...
##  $ PC_01_score                 : num  0.568 0.339 0.568 NA NA ...
##  $ STK_4_score                 : num  -1.23 NA NA NA NA ...
##  $ STK_5_score                 : num  -0.0337 0.2084 0.2084 0.4505 NA ...
##  $ STK_6_score                 : num  0.447 -0.921 0.199 -3.035 NA ...
##  $ STK_8_score                 : num  -0.573 0.62 -0.298 NA NA ...
##  $ VTE_1_score                 : num  0.334 0.178 0.412 0.334 0.489 ...
##  $ VTE_2_score                 : num  0.398 -0.481 -1.361 0.398 NA ...
##  $ VTE_3_score                 : num  -0.279 0.822 -0.892 NA NA ...
##  $ VTE_5_score                 : num  -0.2556 0.6375 -0.0769 NA NA ...
##  $ VTE_6_score                 : num  0.469 NA 0.469 NA NA ...
# We will replace the NA's with the median values.
median_na <- function(x) {
  x[which(is.na(x))] <- median(x, na.rm = T)
  return(x)
}

eff <- data.frame(sapply(eff, median_na))

# calculating group scores
head(eff_weights)
##                                       MR1
## CAC_3_score                  -0.031572305
## IMM_2_score                   0.072902231
## IMM_3_OP_27_FAC_ADHPCT_score -0.001579062
## OP_22_score                   0.051099988
## OP_23_score                   0.019468894
## OP_29_score                   0.002163193
# Multiply each attribute with corresponding weights obtained using Eff.fa$weights
eff <- eff * eff_weights
str(eff)
## 'data.frame':    3743 obs. of  18 variables:
##  $ CAC_3_score                 : num  -0.011709 0.027037 -0.000586 0.018951 0.00722 ...
##  $ IMM_2_score                 : num  0.014259 -0.016747 0.044739 -0.000838 0.01009 ...
##  $ IMM_3_OP_27_FAC_ADHPCT_score: num  -0.00716 -0.00389 -0.00534 -0.15397 0.00439 ...
##  $ OP_22_score                 : num  -0.05284 -0.00359 0.01781 -0.01435 0.03314 ...
##  $ OP_23_score                 : num  -0.000464 0.032824 0.005498 0.007024 -0.00566 ...
##  $ OP_29_score                 : num  0.155 -0.00179 -0.00426 -0.08056 0.03277 ...
##  $ OP_30_score                 : num  0.008306 0.211053 -0.000851 -0.144511 0.02192 ...
##  $ OP_4_score                  : num  0.06884 0.06398 0.15565 0.00321 0.01546 ...
##  $ PC_01_score                 : num  0.01344 0.063335 0.066362 0.143197 -0.000879 ...
##  $ STK_4_score                 : num  -0.04113 0.00753 0.0594 0.0372 0.1343 ...
##  $ STK_5_score                 : num  -0.000308 0.006982 0.004933 0.084063 0.052649 ...
##  $ STK_6_score                 : num  -0.02032 -0.00842 0.00666 -0.07183 0.0603 ...
##  $ STK_8_score                 : num  -0.01834 -0.02818 -0.00272 0.01156 0.00817 ...
##  $ VTE_1_score                 : num  0.000722 0.005707 -0.018689 0.003055 0.016393 ...
##  $ VTE_2_score                 : num  0.00775 -0.00104 -0.04356 -0.01807 0.00364 ...
##  $ VTE_3_score                 : num  -0.01428 0.01601 -0.00193 0.01064 -0.0151 ...
##  $ VTE_5_score                 : num  0.000404 0.032576 -0.001498 0.000993 0.014687 ...
##  $ VTE_6_score                 : num  0.03418 -0.00074 0.02396 0.00913 0.00101 ...
# For each hospital, calculate average score for effectiveness
# Avg -> summed_score/number_of _measures
str(eff)
## 'data.frame':    3743 obs. of  18 variables:
##  $ CAC_3_score                 : num  -0.011709 0.027037 -0.000586 0.018951 0.00722 ...
##  $ IMM_2_score                 : num  0.014259 -0.016747 0.044739 -0.000838 0.01009 ...
##  $ IMM_3_OP_27_FAC_ADHPCT_score: num  -0.00716 -0.00389 -0.00534 -0.15397 0.00439 ...
##  $ OP_22_score                 : num  -0.05284 -0.00359 0.01781 -0.01435 0.03314 ...
##  $ OP_23_score                 : num  -0.000464 0.032824 0.005498 0.007024 -0.00566 ...
##  $ OP_29_score                 : num  0.155 -0.00179 -0.00426 -0.08056 0.03277 ...
##  $ OP_30_score                 : num  0.008306 0.211053 -0.000851 -0.144511 0.02192 ...
##  $ OP_4_score                  : num  0.06884 0.06398 0.15565 0.00321 0.01546 ...
##  $ PC_01_score                 : num  0.01344 0.063335 0.066362 0.143197 -0.000879 ...
##  $ STK_4_score                 : num  -0.04113 0.00753 0.0594 0.0372 0.1343 ...
##  $ STK_5_score                 : num  -0.000308 0.006982 0.004933 0.084063 0.052649 ...
##  $ STK_6_score                 : num  -0.02032 -0.00842 0.00666 -0.07183 0.0603 ...
##  $ STK_8_score                 : num  -0.01834 -0.02818 -0.00272 0.01156 0.00817 ...
##  $ VTE_1_score                 : num  0.000722 0.005707 -0.018689 0.003055 0.016393 ...
##  $ VTE_2_score                 : num  0.00775 -0.00104 -0.04356 -0.01807 0.00364 ...
##  $ VTE_3_score                 : num  -0.01428 0.01601 -0.00193 0.01064 -0.0151 ...
##  $ VTE_5_score                 : num  0.000404 0.032576 -0.001498 0.000993 0.014687 ...
##  $ VTE_6_score                 : num  0.03418 -0.00074 0.02396 0.00913 0.00101 ...
eff = eff %>% mutate(score = round(rowSums(.) / length(eff), 3))

effectiveness <- effectiveness[row_num,]
effectiveness$score <- eff$score
effectiveness_scores <- effectiveness[, c("Provider.ID", "score")]
str(effectiveness_scores)
## 'data.frame':    3743 obs. of  2 variables:
##  $ Provider.ID: int  10001 10005 10006 10007 10008 10011 10012 10016 10018 10019 ...
##  $ score      : num  0.008 0.022 0.017 -0.009 0.022 -0.088 0.009 0.023 -0.148 -0.01 ...
# let us rename the column with appropriate measure name.
names(effectiveness_scores)[2] <- paste("effe_score")
str(effectiveness_scores)
## 'data.frame':    3743 obs. of  2 variables:
##  $ Provider.ID: int  10001 10005 10006 10007 10008 10011 10012 10016 10018 10019 ...
##  $ effe_score : num  0.008 0.022 0.017 -0.009 0.022 -0.088 0.009 0.023 -0.148 -0.01 ...
# Since we need to repeat this process for the rest of the measures let us create a function

function_group_score <- function(data) {
  # remove the provide.ID column
  df <- data[, -1]

  #scale the data
  df <- as.data.frame(scale(df))
  str(df)

  # Using psych package, apply factor analysis on data
  # This command was provided by the mentor. We have to use the method=ML (maximum likelihood) and scores="tenBerge"
  df.fa <- fa(df, method = "ml", scores = "tenBerge")

  # finding the weights
  df_weights <- df.fa$weights
  sum(df_weights)

  df_weights <- df_weights / sum(df_weights)
  sum(df_weights)

  # CMS says a hospital needs to have at least 3 measures per group
  # Rows with attribute values having more than 3 NA's are removed(Removing all such hospitals)
  df$remove <- 0

  for (i in 1:nrow(df)) {
    if (sum(!is.na(df[i,])) <= 3) { df[i, c("remove")] = 1 }
    else { df[i, c("remove")] = 0 }
  }

  row_num <- which(!df$remove)

  df <- df[which(!df$remove),]
  sum(df$remove)
  df <- df[, -ncol(df)]
  str(df)

  # We will replace the NA's with the median values.
  median_na <- function(x) {
    x[which(is.na(x))] <- median(x, na.rm = T)
    return(x)
  }

  df <- data.frame(sapply(df, median_na))

  # calculating group scores
  # Multiply each attribute with corresponding weights obtained using df.fa$weights
  df <- df * df_weights

  # For each hospital, calculate average score for effectiveness
  # Avg -> summed_score/number_of _measures

  df = df %>% mutate(score = round(rowSums(.) / length(df), 3))

  data <- data[row_num,]
  data$score <- df$score
  data_scores <- data[, c("Provider.ID", "score")]
  # let us rename the column with appropriate measure name.
  names(data_scores)[2] <- paste("df_score")

  return(data_scores)
}
# readmission scores
data <- read_master[, -c(2:8)]
readmission_scores <- function_group_score(data)
## 'data.frame':    4818 obs. of  8 variables:
##  $ READM_30_AMI_score      : num  0.41 0.201 0.829 NA NA ...
##  $ READM_30_CABG_score     : num  -0.619 NA -0.708 NA NA ...
##  $ READM_30_COPD_score     : num  -0.8701 1.5792 0.1571 0.0781 0.6311 ...
##  $ READM_30_HF_score       : num  0.372 0.036 0.909 0.573 -0.77 ...
##  $ READM_30_HIP_KNEE_score : num  -0.889 -1.979 -0.708 NA NA ...
##  $ READM_30_HOSP_WIDE_score: num  0.218 0.829 0.218 -1.248 -0.148 ...
##  $ READM_30_PN_score       : num  -1.111 0.497 -0.551 -0.132 0.776 ...
##  $ READM_30_STK_score      : num  -0.125 -0.779 0.529 -0.125 NA ...
## 'data.frame':    3816 obs. of  8 variables:
##  $ READM_30_AMI_score      : num  0.41 0.201 0.829 NA NA ...
##  $ READM_30_CABG_score     : num  -0.619 NA -0.708 NA NA ...
##  $ READM_30_COPD_score     : num  -0.8701 1.5792 0.1571 0.0781 0.6311 ...
##  $ READM_30_HF_score       : num  0.372 0.036 0.909 0.573 -0.77 ...
##  $ READM_30_HIP_KNEE_score : num  -0.889 -1.979 -0.708 NA NA ...
##  $ READM_30_HOSP_WIDE_score: num  0.218 0.829 0.218 -1.248 -0.148 ...
##  $ READM_30_PN_score       : num  -1.111 0.497 -0.551 -0.132 0.776 ...
##  $ READM_30_STK_score      : num  -0.125 -0.779 0.529 -0.125 NA ...
str(readmission_scores)
## 'data.frame':    3816 obs. of  2 variables:
##  $ Provider.ID: int  10001 10005 10006 10007 10008 10011 10012 10016 10019 10021 ...
##  $ df_score   : num  -0.04 0.002 0.006 -0.01 0.002 0.069 -0.013 0.004 -0.056 0.007 ...
names(readmission_scores)[2] <- "radm_score"
head(readmission_scores)
##   Provider.ID radm_score
## 1       10001     -0.040
## 2       10005      0.002
## 3       10006      0.006
## 4       10007     -0.010
## 5       10008      0.002
## 6       10011      0.069
# mortality scores
data <- mort_master[, -c(2:8)]
mortality_scores <- function_group_score(data)
## 'data.frame':    4818 obs. of  7 variables:
##  $ MORT_30_AMI_score    : num  1.25 -1.55 -2.11 NA NA ...
##  $ MORT_30_CABG_score   : num  -1.01 NA -0.89 NA NA ...
##  $ MORT_30_COPD_score   : num  -1.099 0.436 0.887 -1.099 -0.106 ...
##  $ MORT_30_HF_score     : num  -0.166 -2.294 -2.362 -1.539 -0.372 ...
##  $ MORT_30_PN_score     : num  0.429 -2.114 -0.866 -1.154 0.333 ...
##  $ MORT_30_STK_score    : num  -0.283 -0.343 -1.79 -1.007 NA ...
##  $ PSI_4_SURG_COMP_score: num  -1.72 -2.3 -3.34 NA NA ...
## 'data.frame':    3480 obs. of  7 variables:
##  $ MORT_30_AMI_score    : num  1.25 -1.55 -2.11 NA NA ...
##  $ MORT_30_CABG_score   : num  -1.01 NA -0.89 NA NA ...
##  $ MORT_30_COPD_score   : num  -1.099 0.436 0.887 -1.099 -0.106 ...
##  $ MORT_30_HF_score     : num  -0.166 -2.294 -2.362 -1.539 -0.372 ...
##  $ MORT_30_PN_score     : num  0.429 -2.114 -0.866 -1.154 0.333 ...
##  $ MORT_30_STK_score    : num  -0.283 -0.343 -1.79 -1.007 NA ...
##  $ PSI_4_SURG_COMP_score: num  -1.72 -2.3 -3.34 NA NA ...
str(mortality_scores)
## 'data.frame':    3480 obs. of  2 variables:
##  $ Provider.ID: int  10001 10005 10006 10007 10008 10011 10012 10016 10019 10021 ...
##  $ df_score   : num  -0.021 -0.164 -0.182 -0.066 0.003 -0.009 -0.162 -0.069 -0.069 0.037 ...
names(mortality_scores)[2] <- "mort_score"
head(mortality_scores)
##   Provider.ID mort_score
## 1       10001     -0.021
## 2       10005     -0.164
## 3       10006     -0.182
## 4       10007     -0.066
## 5       10008      0.003
## 6       10011     -0.009
# safety scores
data <- safe_master[, -c(2:8)]
safety_scores <- function_group_score(data)
## 'data.frame':    4818 obs. of  8 variables:
##  $ COMP_HIP_KNEE_score: num  -1.3622 0.0741 -1.3622 NA NA ...
##  $ HAI_1_SIR_score    : num  -2.385 -1.038 0.393 NA NA ...
##  $ HAI_2_SIR_score    : num  -2.1956 0.0472 -0.3802 1.1004 NA ...
##  $ HAI_3_SIR_score    : num  -1.139 0.724 0.82 NA NA ...
##  $ HAI_4_SIR_score    : num  1.02 NA NA NA NA ...
##  $ HAI_5_SIR_score    : num  0.65 -0.461 -0.315 NA NA ...
##  $ HAI_6_SIR_score    : num  0.0559 0.8017 0.5908 1.5924 0.4503 ...
##  $ PSI_90_SAFETY_score: num  1.2198 0.2314 -0.1175 0.5802 -0.0593 ...
## 'data.frame':    2954 obs. of  8 variables:
##  $ COMP_HIP_KNEE_score: num  -1.3622 0.0741 -1.3622 NA -1.1826 ...
##  $ HAI_1_SIR_score    : num  -2.3846 -1.0384 0.3931 NA -0.0358 ...
##  $ HAI_2_SIR_score    : num  -2.1956 0.0472 -0.3802 1.1004 0.188 ...
##  $ HAI_3_SIR_score    : num  -1.139 0.724 0.82 NA -0.584 ...
##  $ HAI_4_SIR_score    : num  1.02 NA NA NA 1.02 ...
##  $ HAI_5_SIR_score    : num  0.65 -0.461 -0.315 NA 0.118 ...
##  $ HAI_6_SIR_score    : num  0.0559 0.8017 0.5908 1.5924 0.2258 ...
##  $ PSI_90_SAFETY_score: num  1.22 0.231 -0.117 0.58 -0.583 ...
str(safety_scores)
## 'data.frame':    2954 obs. of  2 variables:
##  $ Provider.ID: int  10001 10005 10006 10007 10011 10012 10016 10019 10021 10023 ...
##  $ df_score   : num  -0.104 -0.005 -0.047 0.051 -0.052 0.06 0.032 0.033 0.04 -0.014 ...
names(safety_scores)[2] <- "safety_score"
str(safety_scores)
## 'data.frame':    2954 obs. of  2 variables:
##  $ Provider.ID : int  10001 10005 10006 10007 10011 10012 10016 10019 10021 10023 ...
##  $ safety_score: num  -0.104 -0.005 -0.047 0.051 -0.052 0.06 0.032 0.033 0.04 -0.014 ...
# experience scores
data <- expe_master[, -c(2:8)]
experience_scores <- function_group_score(data)
## 'data.frame':    4818 obs. of  11 variables:
##  $ H_CLEAN_LINEAR_SCORE     : num  -0.855 -1.114 -1.114 0.442 NA ...
##  $ H_COMP_1_LINEAR_SCORE    : num  -0.528 -0.131 -0.131 -0.131 NA ...
##  $ H_COMP_2_LINEAR_SCORE    : num  0.0404 0.8652 0.8652 1.6899 NA ...
##  $ H_COMP_3_LINEAR_SCORE    : num  -1.203 -0.291 -0.519 0.393 NA ...
##  $ H_COMP_4_LINEAR_SCORE    : num  -0.611 0.168 -0.221 0.557 NA ...
##  $ H_COMP_5_LINEAR_SCORE    : num  -0.417 0.285 -0.183 0.753 NA ...
##  $ H_COMP_6_LINEAR_SCORE    : num  0.0273 0.3106 -1.1058 -0.256 NA ...
##  $ H_COMP_7_LINEAR_SCORE    : num  0.166 -0.186 -0.537 0.166 NA ...
##  $ H_HSP_RATING_LINEAR_SCORE: num  0.0837 0.3939 -1.1573 -0.5368 NA ...
##  $ H_QUIET_LINEAR_SCORE     : num  0.97 0.578 0.578 1.755 NA ...
##  $ H_RECMND_LINEAR_SCORE    : num  0.452 0.222 -0.932 -0.47 NA ...
## 'data.frame':    3508 obs. of  11 variables:
##  $ H_CLEAN_LINEAR_SCORE     : num  -0.855 -1.114 -1.114 0.442 -1.633 ...
##  $ H_COMP_1_LINEAR_SCORE    : num  -0.528 -0.131 -0.131 -0.131 -0.528 ...
##  $ H_COMP_2_LINEAR_SCORE    : num  0.0404 0.8652 0.8652 1.6899 0.0404 ...
##  $ H_COMP_3_LINEAR_SCORE    : num  -1.203 -0.291 -0.519 0.393 -0.747 ...
##  $ H_COMP_4_LINEAR_SCORE    : num  -0.611 0.168 -0.221 0.557 -0.611 ...
##  $ H_COMP_5_LINEAR_SCORE    : num  -0.417 0.285 -0.183 0.753 -1.119 ...
##  $ H_COMP_6_LINEAR_SCORE    : num  0.0273 0.3106 -1.1058 -0.256 -0.256 ...
##  $ H_COMP_7_LINEAR_SCORE    : num  0.166 -0.186 -0.537 0.166 -0.186 ...
##  $ H_HSP_RATING_LINEAR_SCORE: num  0.0837 0.3939 -1.1573 -0.5368 -0.2266 ...
##  $ H_QUIET_LINEAR_SCORE     : num  0.97 0.578 0.578 1.755 0.186 ...
##  $ H_RECMND_LINEAR_SCORE    : num  0.452 0.222 -0.932 -0.47 -0.24 ...
str(experience_scores)
## 'data.frame':    3508 obs. of  2 variables:
##  $ Provider.ID: int  10001 10005 10006 10007 10011 10012 10016 10019 10021 10022 ...
##  $ df_score   : num  -0.033 -0.017 -0.039 0.039 -0.03 0.017 -0.007 -0.021 0.023 0.069 ...
names(experience_scores)[2] <- "expe_score"
str(experience_scores)
## 'data.frame':    3508 obs. of  2 variables:
##  $ Provider.ID: int  10001 10005 10006 10007 10011 10012 10016 10019 10021 10022 ...
##  $ expe_score : num  -0.033 -0.017 -0.039 0.039 -0.03 0.017 -0.007 -0.021 0.023 0.069 ...
# medical scores
data <- medi_master[, -c(2:8)]
medical_scores <- function_group_score(data)
## 'data.frame':    4818 obs. of  5 variables:
##  $ OP_10_score: num  0.251 -0.425 -0.278 -1.503 0.526 ...
##  $ OP_11_score: num  0.391 -1.217 -0.248 -0.508 NA ...
##  $ OP_13_score: num  -1.207 -0.308 2.339 NA NA ...
##  $ OP_14_score: num  0.208 -0.651 -0.973 NA 1.174 ...
##  $ OP_8_score : num  0.301 -0.379 -0.784 NA NA ...
## 'data.frame':    2792 obs. of  5 variables:
##  $ OP_10_score: num  0.251 -0.425 -0.278 0.643 0.28 ...
##  $ OP_11_score: num  0.391 -1.217 -0.248 -1.251 -1.32 ...
##  $ OP_13_score: num  -1.207 -0.308 2.339 NA 0.791 ...
##  $ OP_14_score: num  0.208 -0.651 -0.973 -0.329 NA ...
##  $ OP_8_score : num  0.301 -0.379 -0.784 0.576 NA ...
str(medical_scores)
## 'data.frame':    2792 obs. of  2 variables:
##  $ Provider.ID: int  10001 10005 10006 10011 10012 10016 10019 10021 10023 10024 ...
##  $ df_score   : num  0.033 -0.07 0.137 -0.08 -0.112 -0.271 -0.101 -0.042 -0.031 0.089 ...
names(medical_scores)[2] <- "medi_score"
str(medical_scores)
## 'data.frame':    2792 obs. of  2 variables:
##  $ Provider.ID: int  10001 10005 10006 10011 10012 10016 10019 10021 10023 10024 ...
##  $ medi_score : num  0.033 -0.07 0.137 -0.08 -0.112 -0.271 -0.101 -0.042 -0.031 0.089 ...
# timeliness scores
data <- time_master[, -c(2:8)]
timeliness_scores <- function_group_score(data)
## 'data.frame':    4818 obs. of  7 variables:
##  $ ED_1b_score : num  0.0889 0.3434 0.5979 0.5783 0.9601 ...
##  $ ED_2b_score : num  0.51 0.464 0.358 0.51 0.693 ...
##  $ OP_18b_score: num  -1.279 0.62 0.235 0.572 1.077 ...
##  $ OP_20_score : num  -2.4285 -0.0502 1.0138 -0.7387 -0.0502 ...
##  $ OP_21_score : num  -2.592 -0.381 -0.267 -2.082 0.243 ...
##  $ OP_3b_score : num  NA NA NA NA NA ...
##  $ OP_5_score  : num  NA -0.727 NA 0.25 NA ...
## 'data.frame':    3531 obs. of  7 variables:
##  $ ED_1b_score : num  0.0889 0.3434 0.5979 0.5783 0.9601 ...
##  $ ED_2b_score : num  0.51 0.464 0.358 0.51 0.693 ...
##  $ OP_18b_score: num  -1.279 0.62 0.235 0.572 1.077 ...
##  $ OP_20_score : num  -2.4285 -0.0502 1.0138 -0.7387 -0.0502 ...
##  $ OP_21_score : num  -2.592 -0.381 -0.267 -2.082 0.243 ...
##  $ OP_3b_score : num  NA NA NA NA NA ...
##  $ OP_5_score  : num  NA -0.727 NA 0.25 NA ...
str(timeliness_scores)
## 'data.frame':    3531 obs. of  2 variables:
##  $ Provider.ID: int  10001 10005 10006 10007 10008 10011 10012 10016 10018 10019 ...
##  $ df_score   : num  -0.043 0.071 -0.006 0.111 0.107 -0.229 0.075 -0.048 0.08 -0.042 ...
names(timeliness_scores)[2] <- "time_score"
str(timeliness_scores)
## 'data.frame':    3531 obs. of  2 variables:
##  $ Provider.ID: int  10001 10005 10006 10007 10008 10011 10012 10016 10018 10019 ...
##  $ time_score : num  -0.043 0.071 -0.006 0.111 0.107 -0.229 0.075 -0.048 0.08 -0.042 ...
# Merge all the group scores into a master data frame group_scores using providerID
merge1 = merge(readmission_scores, mortality_scores, by = "Provider.ID")
merge2 = merge(merge1, safety_scores, by = "Provider.ID")
merge3 = merge(merge2, experience_scores, by = "Provider.ID")
merge4 = merge(merge3, medical_scores, by = "Provider.ID")
merge5 = merge(merge4, timeliness_scores, by = "Provider.ID")
merge6 = merge(merge5, effectiveness_scores, by = "Provider.ID")
group_scores <- merge6

##########################################3############ group scores calculation complete ###############################################################

calculating the final scores

Multiply each group_scores with corresponding measure weights given by CMS and sum

them to form final_score=sum(each_column * cms_weights)/7

str(group_scores)
## 'data.frame':    2414 obs. of  8 variables:
##  $ Provider.ID : int  10001 10005 10006 10011 10012 10016 10019 10021 10023 10024 ...
##  $ radm_score  : num  -0.04 0.002 0.006 0.069 -0.013 0.004 -0.056 0.007 -0.085 0.009 ...
##  $ mort_score  : num  -0.021 -0.164 -0.182 -0.009 -0.162 -0.069 -0.069 0.037 -0.114 -0.087 ...
##  $ safety_score: num  -0.104 -0.005 -0.047 -0.052 0.06 0.032 0.033 0.04 -0.014 -0.075 ...
##  $ expe_score  : num  -0.033 -0.017 -0.039 -0.03 0.017 -0.007 -0.021 0.023 -0.004 0.026 ...
##  $ medi_score  : num  0.033 -0.07 0.137 -0.08 -0.112 -0.271 -0.101 -0.042 -0.031 0.089 ...
##  $ time_score  : num  -0.043 0.071 -0.006 -0.229 0.075 -0.048 -0.042 0.082 -0.031 0.035 ...
##  $ effe_score  : num  0.008 0.022 0.017 -0.088 0.009 0.023 -0.01 0.024 0.014 -0.01 ...
cms_weights <- c(readmission = 0.22, mortality = 0.22, safety = 0.22, experience = 0.22, medical = 0.04, timeliness = 0.04, effectiveness = 0.04)

group_scores[, "final_score"] <-
  apply(group_scores[, -c(1, ncol(group_scores))], 1, function(x)
    round(sum(x * cms_weights, na.rm = T), 3))
## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length

## Warning in x * cms_weights: longer object length is not a multiple of
## shorter object length
str(group_scores)
## 'data.frame':    2414 obs. of  9 variables:
##  $ Provider.ID : int  10001 10005 10006 10011 10012 10016 10019 10021 10023 10024 ...
##  $ radm_score  : num  -0.04 0.002 0.006 0.069 -0.013 0.004 -0.056 0.007 -0.085 0.009 ...
##  $ mort_score  : num  -0.021 -0.164 -0.182 -0.009 -0.162 -0.069 -0.069 0.037 -0.114 -0.087 ...
##  $ safety_score: num  -0.104 -0.005 -0.047 -0.052 0.06 0.032 0.033 0.04 -0.014 -0.075 ...
##  $ expe_score  : num  -0.033 -0.017 -0.039 -0.03 0.017 -0.007 -0.021 0.023 -0.004 0.026 ...
##  $ medi_score  : num  0.033 -0.07 0.137 -0.08 -0.112 -0.271 -0.101 -0.042 -0.031 0.089 ...
##  $ time_score  : num  -0.043 0.071 -0.006 -0.229 0.075 -0.048 -0.042 0.082 -0.031 0.035 ...
##  $ effe_score  : num  0.008 0.022 0.017 -0.088 0.009 0.023 -0.01 0.024 0.014 -0.01 ...
##  $ final_score : num  -0.046 -0.04 -0.052 -0.014 -0.024 -0.021 -0.033 0.025 -0.054 -0.023 ...
head(group_scores)
##   Provider.ID radm_score mort_score safety_score expe_score medi_score
## 1       10001     -0.040     -0.021       -0.104     -0.033      0.033
## 2       10005      0.002     -0.164       -0.005     -0.017     -0.070
## 3       10006      0.006     -0.182       -0.047     -0.039      0.137
## 4       10011      0.069     -0.009       -0.052     -0.030     -0.080
## 5       10012     -0.013     -0.162        0.060      0.017     -0.112
## 6       10016      0.004     -0.069        0.032     -0.007     -0.271
##   time_score effe_score final_score
## 1     -0.043      0.008      -0.046
## 2      0.071      0.022      -0.040
## 3     -0.006      0.017      -0.052
## 4     -0.229     -0.088      -0.014
## 5      0.075      0.009      -0.024
## 6     -0.048      0.023      -0.021
# > head(group_scores)
#     Provider.ID radm_score mort_score safety_score expe_score medi_score time_score effe_score final_score
# 1       10001     -0.040     -0.021       -0.104     -0.033      0.033     -0.043      0.008      -0.046
# 2       10005      0.002     -0.164       -0.005     -0.017     -0.070      0.071      0.022      -0.040
# 3       10006      0.006     -0.182       -0.047     -0.039      0.137     -0.006      0.017      -0.052
# 4       10011      0.069     -0.009       -0.052     -0.030     -0.080     -0.229     -0.088      -0.014
# 5       10012     -0.013     -0.162        0.060      0.017     -0.112      0.075      0.009      -0.024
# 6       10016      0.004     -0.069        0.032     -0.007     -0.271     -0.048      0.023      -0.021
# >

final_score_df <- group_scores[, c(1, ncol(group_scores))]
summary(final_score_df$final_score)
##      Min.   1st Qu.    Median      Mean   3rd Qu.      Max. 
## -0.261000 -0.025000  0.000000 -0.002328  0.024000  0.250000
# > summary(final_score_df$final_score)
#     Min.   1st Qu.    Median      Mean   3rd Qu.      Max.
# -0.261000 -0.025000  0.000000 -0.002328  0.024000  0.250000


# Removing the final_score column from group_scores
str(group_scores)
## 'data.frame':    2414 obs. of  9 variables:
##  $ Provider.ID : int  10001 10005 10006 10011 10012 10016 10019 10021 10023 10024 ...
##  $ radm_score  : num  -0.04 0.002 0.006 0.069 -0.013 0.004 -0.056 0.007 -0.085 0.009 ...
##  $ mort_score  : num  -0.021 -0.164 -0.182 -0.009 -0.162 -0.069 -0.069 0.037 -0.114 -0.087 ...
##  $ safety_score: num  -0.104 -0.005 -0.047 -0.052 0.06 0.032 0.033 0.04 -0.014 -0.075 ...
##  $ expe_score  : num  -0.033 -0.017 -0.039 -0.03 0.017 -0.007 -0.021 0.023 -0.004 0.026 ...
##  $ medi_score  : num  0.033 -0.07 0.137 -0.08 -0.112 -0.271 -0.101 -0.042 -0.031 0.089 ...
##  $ time_score  : num  -0.043 0.071 -0.006 -0.229 0.075 -0.048 -0.042 0.082 -0.031 0.035 ...
##  $ effe_score  : num  0.008 0.022 0.017 -0.088 0.009 0.023 -0.01 0.024 0.014 -0.01 ...
##  $ final_score : num  -0.046 -0.04 -0.052 -0.014 -0.024 -0.021 -0.033 0.025 -0.054 -0.023 ...
group_scores <- group_scores[, -9]

calculating the final scores complete

Unsupervised Modelling using - kmeans clustering

# The values for nstart and ncluster are as per the mentor's suggestions.
score <- kmeans(final_score_df$final_score, 5, nstart = 100)
summary(score)
##              Length Class  Mode   
## cluster      2414   -none- numeric
## centers         5   -none- numeric
## totss           1   -none- numeric
## withinss        5   -none- numeric
## tot.withinss    1   -none- numeric
## betweenss       1   -none- numeric
## size            5   -none- numeric
## iter            1   -none- numeric
## ifault          1   -none- numeric
summary(factor(score$cluster))
##   1   2   3   4   5 
##  46 114 421 849 984
str(score)
## List of 9
##  $ cluster     : int [1:2414] 3 3 3 5 5 5 5 4 3 5 ...
##  $ centers     : num [1:5, 1] -0.14433 0.09054 -0.05661 0.02868 -0.00998
##   ..- attr(*, "dimnames")=List of 2
##   .. ..$ : chr [1:5] "1" "2" "3" "4" ...
##   .. ..$ : NULL
##  $ totss       : num 4.65
##  $ withinss    : num [1:5] 0.0824 0.1436 0.1175 0.141 0.1412
##  $ tot.withinss: num 0.626
##  $ betweenss   : num 4.02
##  $ size        : int [1:5] 46 114 421 849 984
##  $ iter        : int 2
##  $ ifault      : int 0
##  - attr(*, "class")= chr "kmeans"
final_score_df$cluster_id <- score$cluster

f = final_score_df %>%
  group_by(cluster_id) %>%
  summarise(avg_score = mean(final_score)) %>%
  arrange(desc(avg_score))
f
## # A tibble: 5 x 2
##   cluster_id avg_score
##        <int>     <dbl>
## 1          2   0.0905 
## 2          4   0.0287 
## 3          5  -0.00998
## 4          3  -0.0566 
## 5          1  -0.144
# We notice that after arranging the avg_score column in descending order, the cluster_id values are different.
# we now need to reassign the cluster ratings according to the average rating
# The top most one should be as follows, 5, 4, 3, 2, 1
# We will adjust this by creating a new clusterid column and assign the values to it.

str(f)
## Classes 'tbl_df', 'tbl' and 'data.frame':    5 obs. of  2 variables:
##  $ cluster_id: int  2 4 5 3 1
##  $ avg_score : num  0.09054 0.02868 -0.00998 -0.05661 -0.14433
final_score_df$newcluster_id <-
  if_else(
    final_score_df$cluster_id == f$cluster_id[1],
    5,
    if_else(
      final_score_df$cluster_id == f$cluster_id[2],
      4,
      if_else(
        final_score_df$cluster_id == f$cluster_id[3],
        3,
        if_else(final_score_df$cluster_id == f$cluster_id[4], 2, 1)
      )
    )
  )

final_score_df %>%
  group_by(newcluster_id) %>%
  summarise(avg_score = mean(final_score)) %>%
  arrange(desc(avg_score))
## # A tibble: 5 x 2
##   newcluster_id avg_score
##           <dbl>     <dbl>
## 1             5   0.0905 
## 2             4   0.0287 
## 3             3  -0.00998
## 4             2  -0.0566 
## 5             1  -0.144
# # A tibble: 5 x 2
# cluster_id avg_score
# <int>       <dbl>
#   5        0.0905
#   4        0.0287
#   3       -0.00972
#   2       -0.0558
#   1       -0.142

str(final_score_df)
## 'data.frame':    2414 obs. of  4 variables:
##  $ Provider.ID  : int  10001 10005 10006 10011 10012 10016 10019 10021 10023 10024 ...
##  $ final_score  : num  -0.046 -0.04 -0.052 -0.014 -0.024 -0.021 -0.033 0.025 -0.054 -0.023 ...
##  $ cluster_id   : int  3 3 3 5 5 5 5 4 3 5 ...
##  $ newcluster_id: num  2 2 2 3 3 3 3 4 2 3 ...
final_score_df$newcluster_id <- as.factor(final_score_df$newcluster_id)
summary(final_score_df$newcluster_id)
##   1   2   3   4   5 
##  46 421 984 849 114
# > summary(final_score_df$newcluster_id)
#   1   2   3   4   5
#  48 430 973 849 114

# We see that there are around 114 providers who have top 5 rating and as usual most of the providers are in the median 3 rating.
# Around 849 providers are in top 4 rating.

summary(final_score_df$final_score)
##      Min.   1st Qu.    Median      Mean   3rd Qu.      Max. 
## -0.261000 -0.025000  0.000000 -0.002328  0.024000  0.250000
# Visualising the final_score accross all the ratings
head(final_score_df)
##   Provider.ID final_score cluster_id newcluster_id
## 1       10001      -0.046          3             2
## 2       10005      -0.040          3             2
## 3       10006      -0.052          3             2
## 4       10011      -0.014          5             3
## 5       10012      -0.024          5             3
## 6       10016      -0.021          5             3
final_plot <- ggplot(final_score_df, aes(x = newcluster_id, y = final_score * 100, fill = newcluster_id)) +
  geom_boxplot() +
  xlab("Star Ratings") +
  ylab("Final Scores") +
  theme_light() +
  scale_y_continuous(breaks = 100 * seq(-0.2, 0.2, 0.05))
final_plot

# Let us plot each group_scores against the final_score_df
# Merging the group_scores with final_scores_df
all_scores <- merge(group_scores, final_score_df, by = "Provider.ID")

# all_scores group by readmission
summary(all_scores$radm_score)
##       Min.    1st Qu.     Median       Mean    3rd Qu.       Max. 
## -0.8400000 -0.0310000  0.0015000 -0.0003761  0.0340000  0.8150000
readm_plot <- ggplot(all_scores, aes(x = factor(as.character(newcluster_id)), y = radm_score * 100, fill = newcluster_id)) +
  geom_boxplot() +
  xlab("Star Ratings") +
  ylab("Readmission Scores") +
  theme_light() +
  scale_y_continuous(breaks = 100 * seq(-1.0, 1.0, 0.25))
readm_plot

# all_scores group by mortality
summary(all_scores$mort_score)
##      Min.   1st Qu.    Median      Mean   3rd Qu.      Max. 
## -0.280000 -0.047000  0.004000  0.003586  0.055750  0.330000
mort_plot <- ggplot(all_scores, aes(x = factor(as.character(newcluster_id)), y = mort_score * 100, fill = newcluster_id)) +
  geom_boxplot() +
  xlab("Star Ratings") +
  ylab("Mortality Scores") +
  theme_light() +
  scale_y_continuous(breaks = 100 * seq(-0.2, 0.3, 0.05))
mort_plot

# all_scores group by safety
summary(all_scores$safety_score)
##       Min.    1st Qu.     Median       Mean    3rd Qu.       Max. 
## -0.3210000 -0.0310000  0.0070000 -0.0003123  0.0380000  0.1510000
safe_plot <- ggplot(all_scores, aes(x = factor(as.character(newcluster_id)), y = safety_score * 100, fill = newcluster_id)) +
  geom_boxplot() +
  xlab("Star Ratings") +
  ylab("safety scores") +
  theme_light() +
  scale_y_continuous(breaks = 100 * seq(-0.3, 0.2, 0.04))
safe_plot

# all_scores group by experience
summary(all_scores$expe_score)
##     Min.  1st Qu.   Median     Mean  3rd Qu.     Max. 
## -0.37200 -0.04900 -0.00700 -0.01326  0.03100  0.21200
expe_plot <- ggplot(all_scores, aes(x = factor(as.character(newcluster_id)), y = expe_score * 100, fill = newcluster_id)) +
  geom_boxplot() +
  xlab("Star Ratings") +
  ylab("Experience Scores") +
  theme_light() +
  scale_y_continuous(breaks = 100 * seq(-0.4, 0.25, 0.05))
expe_plot

# all_scores group by medical
summary(all_scores$medi_score)
##      Min.   1st Qu.    Median      Mean   3rd Qu.      Max. 
## -0.664000 -0.042000  0.030000  0.007466  0.073000  0.369000
medi_plot <- ggplot(all_scores, aes(x = factor(as.character(newcluster_id)), y = medi_score * 100, fill = newcluster_id)) +
  geom_boxplot() +
  xlab("Star Ratings") +
  ylab("Medical Scores") +
  theme_light() +
  scale_y_continuous(breaks = 100 * seq(-0.5, 0.2, 0.05))
medi_plot

# all_scores group by timeliness
summary(all_scores$time_score)
##      Min.   1st Qu.    Median      Mean   3rd Qu.      Max. 
## -0.938000 -0.053000  0.016000 -0.008087  0.060000  0.284000
time_plot <- ggplot(all_scores, aes(x = factor(as.character(newcluster_id)), y = time_score * 100, fill = newcluster_id)) +
  geom_boxplot() +
  xlab("Star Ratings") +
  ylab("Timeliness Scores") +
  theme_light() +
  scale_y_continuous(breaks = 100 * seq(-0.9, 0.3, 0.08))
time_plot

# all_scores group by effectiveness
summary(all_scores$effe_score)
##     Min.  1st Qu.   Median     Mean  3rd Qu.     Max. 
## -0.15300  0.00000  0.01400  0.00808  0.02300  0.05300
effe_plot <- ggplot(all_scores, aes(x = factor(as.character(newcluster_id)), y = effe_score * 100, fill = newcluster_id)) +
  geom_boxplot() +
  xlab("Star Ratings") +
  ylab("Effectiveness Scores") +
  theme_light() +
  scale_y_continuous(breaks = 100 * seq(-0.2, 0.1, 0.01))
effe_plot

grid_plot2 <- plot_grid(readm_plot, mort_plot, safe_plot, expe_plot, medi_plot, time_plot, effe_plot,
                        labels = c("Readmission", "Mortality", "Safety", "Experience", "Medical", "Timeliness", "Effectiveness"))
grid_plot2

# Now let us compare the median of all the groups scores with the ratings
median_group_scores <- all_scores[, -c(1, 10)] %>%
  group_by(newcluster_id) %>%
  summarise_all(.funs = (median), na.rm = T)
median_group_scores
## # A tibble: 5 x 9
##   newcluster_id radm_score mort_score safety_score expe_score medi_score
##   <fct>              <dbl>      <dbl>        <dbl>      <dbl>      <dbl>
## 1 1                 -0.353    -0.0405      -0.052      -0.086     0.0155
## 2 2                 -0.048    -0.046       -0.031      -0.063     0.006 
## 3 3                 -0.006    -0.008        0.001      -0.021     0.02  
## 4 4                  0.024     0.03         0.027       0.023     0.044 
## 5 5                  0.174     0.066        0.0415      0.037     0.056 
## # … with 3 more variables: time_score <dbl>, effe_score <dbl>,
## #   final_score <dbl>
# A tibble: 5 x 8
# newcluster_id radm_score mort_score safety_score expe_score medi_score time_score effe_score final_score
# <fct>              <dbl>      <dbl>        <dbl>      <dbl>      <dbl>      <dbl>      <dbl>       <dbl>
# 1                 -0.353    -0.0405      -0.052      -0.086     0.0155    -0.0695      0.011      -0.126
# 2                 -0.048    -0.046       -0.031      -0.063     0.006     -0.038       0.012      -0.053
# 3                 -0.006    -0.008        0.001      -0.021     0.02       0.0165      0.013      -0.009
# 4                  0.024     0.03         0.027       0.023     0.044      0.029       0.016       0.027
# 5                  0.174     0.066        0.0415      0.037     0.056      0.0365      0.019       0.077

#                                                                                                                                                                 >                                                                                                                                                                              >
# We can clearly see the rating increases as the measure scores increase.

mean_group_scores <- all_scores[, -c(1, 10)] %>%
  group_by(newcluster_id) %>%
  summarise_all(.funs = (mean), na.rm = T)
mean_group_scores
## # A tibble: 5 x 9
##   newcluster_id radm_score mort_score safety_score expe_score medi_score
##   <fct>              <dbl>      <dbl>        <dbl>      <dbl>      <dbl>
## 1 1                -0.356    -0.0473      -0.0641     -0.100   -0.0304  
## 2 2                -0.0706   -0.0475      -0.0402     -0.0698  -0.0257  
## 3 3                -0.0100   -0.00655     -0.00340    -0.0223  -0.000317
## 4 4                 0.0353    0.0352       0.0224      0.0222   0.0302  
## 5 5                 0.220     0.0650       0.0300      0.0449   0.0432  
## # … with 3 more variables: time_score <dbl>, effe_score <dbl>,
## #   final_score <dbl>
# newcluster_id   radm_score mort_score safety_score expe_score medi_score time_score effe_score final_score
# <fct>              <dbl>      <dbl>        <dbl>      <dbl>      <dbl>      <dbl>      <dbl>       <dbl>
#   1               -0.342     -0.0501      -0.0654     -0.103   -0.0380     -0.104     -0.00231    -0.142
#   2               -0.0711    -0.0455      -0.0393     -0.0689  -0.0244     -0.0621     0.00560    -0.0558
#   3               -0.00925   -0.00680     -0.00325    -0.0220  -0.000215   -0.00609    0.00622    -0.00972
#   4                0.0353     0.0352       0.0224      0.0222   0.0302      0.0186     0.0109      0.0287
#   5                0.220      0.0650       0.0300      0.0449   0.0432      0.0199     0.0170      0.0905

# We can clearly see the rating increases as the measure scores increase.

Validation of Star Ratings

# master_data_y is the hospital_ratings dataset we will use it here.

str(master_data_y)
## 'data.frame':    4818 obs. of  2 variables:
##  $ Provider.ID            : int  10001 10005 10006 10007 10008 10011 10012 10016 10018 10019 ...
##  $ Hospital.overall.rating: int  3 3 2 3 3 2 3 3 NA 2 ...
# Let us convert the ratings column to factor
master_data_y$Hospital.overall.rating <- factor(master_data_y$Hospital.overall.rating)

# merging the final_score_df with the master_data_y using Provider.ID
final_score_df <- merge(final_score_df, master_data_y, by = "Provider.ID")
str(final_score_df)
## 'data.frame':    2414 obs. of  5 variables:
##  $ Provider.ID            : int  10001 10005 10006 10011 10012 10016 10019 10021 10023 10024 ...
##  $ final_score            : num  -0.046 -0.04 -0.052 -0.014 -0.024 -0.021 -0.033 0.025 -0.054 -0.023 ...
##  $ cluster_id             : int  3 3 3 5 5 5 5 4 3 5 ...
##  $ newcluster_id          : Factor w/ 5 levels "1","2","3","4",..: 2 2 2 3 3 3 3 4 2 3 ...
##  $ Hospital.overall.rating: Factor w/ 5 levels "1","2","3","4",..: 3 3 2 2 3 3 2 4 3 3 ...
summary(final_score_df$newcluster_id)
##   1   2   3   4   5 
##  46 421 984 849 114
# Accuracy is determined by comparing the overall ratings of CMS(general.csv) by creating the confusion matrix.
final = table(final_score_df$newcluster_id, final_score_df$Hospital.overall.rating)
final
##    
##       1   2   3   4   5
##   1  21  21   2   2   0
##   2  78 248  89   6   0
##   3   2 249 622 110   1
##   4   0  19 377 422  31
##   5   0   1  14  73  26
conf_matrix4 <- confusionMatrix(final)
conf_matrix4
## Confusion Matrix and Statistics
## 
##    
##       1   2   3   4   5
##   1  21  21   2   2   0
##   2  78 248  89   6   0
##   3   2 249 622 110   1
##   4   0  19 377 422  31
##   5   0   1  14  73  26
## 
## Overall Statistics
##                                           
##                Accuracy : 0.5547          
##                  95% CI : (0.5346, 0.5746)
##     No Information Rate : 0.4573          
##     P-Value [Acc > NIR] : < 2.2e-16       
##                                           
##                   Kappa : 0.3484          
##                                           
##  Mcnemar's Test P-Value : NA              
## 
## Statistics by Class:
## 
##                      Class: 1 Class: 2 Class: 3 Class: 4 Class: 5
## Sensitivity          0.207921   0.4610   0.5634   0.6884  0.44828
## Specificity          0.989192   0.9078   0.7237   0.7629  0.96265
## Pos Pred Value       0.456522   0.5891   0.6321   0.4971  0.22807
## Neg Pred Value       0.966216   0.8545   0.6629   0.8780  0.98609
## Prevalence           0.041839   0.2229   0.4573   0.2539  0.02403
## Detection Rate       0.008699   0.1027   0.2577   0.1748  0.01077
## Detection Prevalence 0.019056   0.1744   0.4076   0.3517  0.04722
## Balanced Accuracy    0.598556   0.6844   0.6435   0.7257  0.70546
# Confusion Matrix and Statistics
#
#
# 1   2   3   4   5
# 1  22  22   2   2   0
# 2  77 253  93   7   0
# 3   2 243 618 109   1
# 4   0  19 377 422  31
# 5   0   1  14  73  26
#
# Overall Statistics
#
# Accuracy : 0.5555
# 95% CI : (0.5354, 0.5755)
# No Information Rate : 0.4573
# P-Value [Acc > NIR] : < 2.2e-16
#
# Kappa : 0.3508
# Mcnemar's Test P-Value : NA
#
# Statistics by Class:
#
#                       Class: 1 Class: 2 Class: 3 Class: 4 Class: 5
# Sensitivity          0.217822   0.4703   0.5598   0.6884  0.44828
# Specificity          0.988759   0.9057   0.7290   0.7629  0.96265
# Pos Pred Value       0.458333   0.5884   0.6351   0.4971  0.22807
# Neg Pred Value       0.966610   0.8564   0.6627   0.8780  0.98609
# Prevalence           0.041839   0.2229   0.4573   0.2539  0.02403
# Detection Rate       0.009114   0.1048   0.2560   0.1748  0.01077
# Detection Prevalence 0.019884   0.1781   0.4031   0.3517  0.04722
# Balanced Accuracy    0.603290   0.6880   0.6444   0.7257  0.70546

# Accuracy : 55.55%

# We see the accuracy is between 50 to 60%, and the model has good scope as it is not overfitting the data.

End of Factor Analysis and Un-supervised Clustering

Provider Analysis for Evanston Hospital

# Using the group_scores dataset
# all_scores

str(all_scores)
## 'data.frame':    2414 obs. of  11 variables:
##  $ Provider.ID  : int  10001 10005 10006 10011 10012 10016 10019 10021 10023 10024 ...
##  $ radm_score   : num  -0.04 0.002 0.006 0.069 -0.013 0.004 -0.056 0.007 -0.085 0.009 ...
##  $ mort_score   : num  -0.021 -0.164 -0.182 -0.009 -0.162 -0.069 -0.069 0.037 -0.114 -0.087 ...
##  $ safety_score : num  -0.104 -0.005 -0.047 -0.052 0.06 0.032 0.033 0.04 -0.014 -0.075 ...
##  $ expe_score   : num  -0.033 -0.017 -0.039 -0.03 0.017 -0.007 -0.021 0.023 -0.004 0.026 ...
##  $ medi_score   : num  0.033 -0.07 0.137 -0.08 -0.112 -0.271 -0.101 -0.042 -0.031 0.089 ...
##  $ time_score   : num  -0.043 0.071 -0.006 -0.229 0.075 -0.048 -0.042 0.082 -0.031 0.035 ...
##  $ effe_score   : num  0.008 0.022 0.017 -0.088 0.009 0.023 -0.01 0.024 0.014 -0.01 ...
##  $ final_score  : num  -0.046 -0.04 -0.052 -0.014 -0.024 -0.021 -0.033 0.025 -0.054 -0.023 ...
##  $ cluster_id   : int  3 3 3 5 5 5 5 4 3 5 ...
##  $ newcluster_id: Factor w/ 5 levels "1","2","3","4",..: 2 2 2 3 3 3 3 4 2 3 ...
# Provider: Evanston Hospital Provider.ID = 140010
# Check the group scores for the provider.ID = 140010
provider_140010_gp_scores <- all_scores[which(all_scores$Provider.ID == 140010),]
provider_140010_gp_scores
##     Provider.ID radm_score mort_score safety_score expe_score medi_score
## 637      140010      0.019      0.278       -0.022     -0.002     -0.013
##     time_score effe_score final_score cluster_id newcluster_id
## 637      0.068      0.015       0.063          2             5
#       Provider.ID radm_score mort_score safety_score expe_score medi_score time_score effe_score final_score cluster_id newcluster_id
# 637      140010      0.019      0.278       -0.022     -0.002     -0.013      0.068      0.015       0.063          3             5

str(master_data_y)
## 'data.frame':    4818 obs. of  2 variables:
##  $ Provider.ID            : int  10001 10005 10006 10007 10008 10011 10012 10016 10018 10019 ...
##  $ Hospital.overall.rating: Factor w/ 5 levels "1","2","3","4",..: 3 3 2 3 3 2 3 3 NA 2 ...
provider_140010_cms_rating = master_data_y[which(master_data_y$Provider.ID == 140010),]
str(provider_140010_cms_rating)
## 'data.frame':    1 obs. of  2 variables:
##  $ Provider.ID            : int 140010
##  $ Hospital.overall.rating: Factor w/ 5 levels "1","2","3","4",..: 3
as.numeric(provider_140010_cms_rating$Hospital.overall.rating)
## [1] 3
# [1] 3
# The current rating of the provider is 3 in the hospital general info provided by CMS.

as.numeric(provider_140010_gp_scores$newcluster_id)
## [1] 5
# [1] 5
# The rating as per the kmeans model is 5, which is a +2 error

value = provider_140010_gp_scores$final_score * 100
value
## [1] 6.3
# Let us compare the provider's final score with the overall scores.
summary(all_scores$final_score)
##      Min.   1st Qu.    Median      Mean   3rd Qu.      Max. 
## -0.261000 -0.025000  0.000000 -0.002328  0.024000  0.250000
final_plot <- ggplot(all_scores, aes(x = newcluster_id, y = final_score * 100, fill = newcluster_id)) +
  geom_boxplot() +
  xlab("Star Ratings") +
  ylab("Final Scores with the Provider Final Score") +
  theme_light() +
  geom_hline(aes(yintercept = value), color = "blue") +
  geom_text(aes(0, value, label = value, vjust = -1, hjust = -1)) +
  scale_y_continuous(breaks = 100 * seq(-0.2, 0.2, 0.05))
final_plot

# let us see how the provider score looks in all the group measures.
f1 <- provider_140010_gp_scores$final_score * 100
v1 <- provider_140010_gp_scores$radm_score * 100
v2 <- provider_140010_gp_scores$mort_score * 100
v3 <- provider_140010_gp_scores$safety_score * 100
v4 <- provider_140010_gp_scores$expe_score * 100
v5 <- provider_140010_gp_scores$medi_score * 100
v6 <- provider_140010_gp_scores$time_score * 100
v7 <- provider_140010_gp_scores$effe_score * 100

f <- final_plot + geom_hline(yintercept = f1, col = "black")
r <- readm_plot +
  geom_hline(yintercept = v1, col = "maroon") +
  geom_text(aes(0, v1, label = v1, vjust = -1, hjust = -1))
m <- mort_plot +
  geom_hline(yintercept = v2, col = "maroon") +
  geom_text(aes(0, v2, label = v2, vjust = 1, hjust = -1))
s <- safe_plot +
  geom_hline(yintercept = v3, col = "maroon") +
  geom_text(aes(0, v3, label = v3, vjust = -1, hjust = -1))
ex <- expe_plot +
  geom_hline(yintercept = v4, col = "maroon") +
  geom_text(aes(0, v4, label = v4, vjust = -1, hjust = -1))
md <- medi_plot +
  geom_hline(yintercept = v5, col = "maroon") +
  geom_text(aes(0, v5, label = v5, vjust = -1, hjust = -1))
t <- time_plot +
  geom_hline(yintercept = v6, col = "maroon") +
  geom_text(aes(0, v6, label = v6, vjust = -1, hjust = -1))
ef <- effe_plot +
  geom_hline(yintercept = v7, col = "maroon") +
  geom_text(aes(0, v7, label = v7, vjust = -1, hjust = -1))
# Let us plot all the above graphs with the provider's y intercept for each group's score.
grid_plot3 <- plot_grid(f, r, m, s, ex, md, t, ef,
                        labels = c('Final', 'Readmission', 'Mortality', 'Safety', 'Experience', 'Medical', 'Timeliness', 'Effectiveness'),
                        ncol = 2, nrow = 4)
grid_plot3

# On comparing the average scores of groups with the provider's score, we find that:
# We see that the final score of the provider is above final score of rating 4.
# 1. The final score is higher than the average score for rating=4 but lower than for rating=5
# 2. Readmissions score is between avg of ratings 3 and 4
# 3. Mortality score is better than average for rating=5
# 4. Safety score is between the avg score for rating = 2 and 1
# 5. Experience score is above the average of ratings 3 and below the average of 4
# 6. Medical score is very bad compared to all the average ratings scores.
# 7. Timeliness score is better than average for rating 5
# 8. Effectiveness score is better than average for rating for 4 and below the average of rating 5

# We can observe that the overall ratings accross Final, Readminssion, Mortality, Timeliness and effectiveness
# is very good compared.
# The areas of improvement are needed in Safety, Experience and Medical.
# Though medical has very less weightage, let us focus on drilling down Safety, Experience and Medical scores,
# which have 22% weightage.

# Now let us view how the median values of each group is looking with respect to the providers scores.
str(all_scores)
## 'data.frame':    2414 obs. of  11 variables:
##  $ Provider.ID  : int  10001 10005 10006 10011 10012 10016 10019 10021 10023 10024 ...
##  $ radm_score   : num  -0.04 0.002 0.006 0.069 -0.013 0.004 -0.056 0.007 -0.085 0.009 ...
##  $ mort_score   : num  -0.021 -0.164 -0.182 -0.009 -0.162 -0.069 -0.069 0.037 -0.114 -0.087 ...
##  $ safety_score : num  -0.104 -0.005 -0.047 -0.052 0.06 0.032 0.033 0.04 -0.014 -0.075 ...
##  $ expe_score   : num  -0.033 -0.017 -0.039 -0.03 0.017 -0.007 -0.021 0.023 -0.004 0.026 ...
##  $ medi_score   : num  0.033 -0.07 0.137 -0.08 -0.112 -0.271 -0.101 -0.042 -0.031 0.089 ...
##  $ time_score   : num  -0.043 0.071 -0.006 -0.229 0.075 -0.048 -0.042 0.082 -0.031 0.035 ...
##  $ effe_score   : num  0.008 0.022 0.017 -0.088 0.009 0.023 -0.01 0.024 0.014 -0.01 ...
##  $ final_score  : num  -0.046 -0.04 -0.052 -0.014 -0.024 -0.021 -0.033 0.025 -0.054 -0.023 ...
##  $ cluster_id   : int  3 3 3 5 5 5 5 4 3 5 ...
##  $ newcluster_id: Factor w/ 5 levels "1","2","3","4",..: 2 2 2 3 3 3 3 4 2 3 ...
all_median_scores <- round(summarise_all(all_scores[, -c(1, 10, 11)], .funs = (median), na.rm = T), 3)
all_median_scores
##   radm_score mort_score safety_score expe_score medi_score time_score
## 1      0.002      0.004        0.007     -0.007       0.03      0.016
##   effe_score final_score
## 1      0.014           0
all_median_scores <- cbind(id = "median_score", all_median_scores)

new_prov <- provider_140010_gp_scores[, -c(1, 10, 11)]
new_prov <- cbind(id = "provider_score", new_prov)

all_median_scores <- rbind(all_median_scores, new_prov)
all_median_scores
##                 id radm_score mort_score safety_score expe_score
## 1     median_score      0.002      0.004        0.007     -0.007
## 637 provider_score      0.019      0.278       -0.022     -0.002
##     medi_score time_score effe_score final_score
## 1        0.030      0.016      0.014       0.000
## 637     -0.013      0.068      0.015       0.063
#                 id  radm_score mort_score safety_score exp_score medi_score time_score effe_score final_score
# 1     median_score      0.002      0.004        0.007    -0.007      0.030      0.016      0.014       0.000
# 637 provider_score      0.019      0.278       -0.022    -0.002     -0.013      0.068      0.015       0.063
str(all_scores)
## 'data.frame':    2414 obs. of  11 variables:
##  $ Provider.ID  : int  10001 10005 10006 10011 10012 10016 10019 10021 10023 10024 ...
##  $ radm_score   : num  -0.04 0.002 0.006 0.069 -0.013 0.004 -0.056 0.007 -0.085 0.009 ...
##  $ mort_score   : num  -0.021 -0.164 -0.182 -0.009 -0.162 -0.069 -0.069 0.037 -0.114 -0.087 ...
##  $ safety_score : num  -0.104 -0.005 -0.047 -0.052 0.06 0.032 0.033 0.04 -0.014 -0.075 ...
##  $ expe_score   : num  -0.033 -0.017 -0.039 -0.03 0.017 -0.007 -0.021 0.023 -0.004 0.026 ...
##  $ medi_score   : num  0.033 -0.07 0.137 -0.08 -0.112 -0.271 -0.101 -0.042 -0.031 0.089 ...
##  $ time_score   : num  -0.043 0.071 -0.006 -0.229 0.075 -0.048 -0.042 0.082 -0.031 0.035 ...
##  $ effe_score   : num  0.008 0.022 0.017 -0.088 0.009 0.023 -0.01 0.024 0.014 -0.01 ...
##  $ final_score  : num  -0.046 -0.04 -0.052 -0.014 -0.024 -0.021 -0.033 0.025 -0.054 -0.023 ...
##  $ cluster_id   : int  3 3 3 5 5 5 5 4 3 5 ...
##  $ newcluster_id: Factor w/ 5 levels "1","2","3","4",..: 2 2 2 3 3 3 3 4 2 3 ...
str(all_scores)
## 'data.frame':    2414 obs. of  11 variables:
##  $ Provider.ID  : int  10001 10005 10006 10011 10012 10016 10019 10021 10023 10024 ...
##  $ radm_score   : num  -0.04 0.002 0.006 0.069 -0.013 0.004 -0.056 0.007 -0.085 0.009 ...
##  $ mort_score   : num  -0.021 -0.164 -0.182 -0.009 -0.162 -0.069 -0.069 0.037 -0.114 -0.087 ...
##  $ safety_score : num  -0.104 -0.005 -0.047 -0.052 0.06 0.032 0.033 0.04 -0.014 -0.075 ...
##  $ expe_score   : num  -0.033 -0.017 -0.039 -0.03 0.017 -0.007 -0.021 0.023 -0.004 0.026 ...
##  $ medi_score   : num  0.033 -0.07 0.137 -0.08 -0.112 -0.271 -0.101 -0.042 -0.031 0.089 ...
##  $ time_score   : num  -0.043 0.071 -0.006 -0.229 0.075 -0.048 -0.042 0.082 -0.031 0.035 ...
##  $ effe_score   : num  0.008 0.022 0.017 -0.088 0.009 0.023 -0.01 0.024 0.014 -0.01 ...
##  $ final_score  : num  -0.046 -0.04 -0.052 -0.014 -0.024 -0.021 -0.033 0.025 -0.054 -0.023 ...
##  $ cluster_id   : int  3 3 3 5 5 5 5 4 3 5 ...
##  $ newcluster_id: Factor w/ 5 levels "1","2","3","4",..: 2 2 2 3 3 3 3 4 2 3 ...
all_mean_scores <- round(summarise_all(all_scores[, -c(1, 10, 11)], .funs = (mean), na.rm = T), 3)
all_mean_scores
##   radm_score mort_score safety_score expe_score medi_score time_score
## 1          0      0.004            0     -0.013      0.007     -0.008
##   effe_score final_score
## 1      0.008      -0.002
all_mean_scores <- cbind(id = "mean_score", all_mean_scores)

new_prov <- provider_140010_gp_scores[, -c(1, 10, 11)]
new_prov <- cbind(id = "provider_score", new_prov)

all_mean_scores <- rbind(all_mean_scores, new_prov)
all_mean_scores
##                 id radm_score mort_score safety_score expe_score
## 1       mean_score      0.000      0.004        0.000     -0.013
## 637 provider_score      0.019      0.278       -0.022     -0.002
##     medi_score time_score effe_score final_score
## 1        0.007     -0.008      0.008      -0.002
## 637     -0.013      0.068      0.015       0.063
#   id            radm_score mort_score safety_score expe_score medi_score time_score effe_score final_score
# mean_score      0.000      0.004        0.000     -0.013      0.007     -0.008      0.008      -0.002
# provider_score  0.019      0.278       -0.022     -0.002     -0.013      0.068      0.015       0.063

# The safety scores are lower than the overall average score, experience score is a bit okay with respect
# to the overall average, but the medical scores are very low.

# let us start the drill down in this order- Safety, Experience and Medical
# Let us plot the safety scores graph and identify the concern points

1.Safety

#———–#

# we will plot the provider score in the y intercept.
h1 <- provider_140010_gp_scores$safety_score * 100
safe_plot +
  geom_hline(yintercept = h1, col = "maroon") +
  geom_text(aes(0, h1, label = h1, vjust = -1, hjust = -1))

safety_scores <- safe_master[, -c(2:8)]
summary(safety_scores)
##   Provider.ID     COMP_HIP_KNEE_score HAI_1_SIR_score   HAI_2_SIR_score  
##  Min.   : 10001   Min.   :-4.2624     Min.   :-7.5390   Min.   :-5.7477  
##  1st Qu.:140185   1st Qu.:-0.6403     1st Qu.:-0.4020   1st Qu.:-0.4872  
##  Median :260037   Median : 0.0745     Median : 0.1505   Median : 0.1293  
##  Mean   :267984   Mean   : 0.0007     Mean   : 0.0016   Mean   : 0.0051  
##  3rd Qu.:390209   3rd Qu.: 0.6105     3rd Qu.: 0.6539   3rd Qu.: 0.7788  
##  Max.   :670112   Max.   : 2.5012     Max.   : 1.0575   Max.   : 1.0540  
##                   NA's   :2104        NA's   :2443      NA's   :1929     
##  HAI_3_SIR_score   HAI_4_SIR_score  HAI_5_SIR_score   HAI_6_SIR_score  
##  Min.   :-4.5045   Min.   :-4.405   Min.   :-5.8483   Min.   :-4.7375  
##  1st Qu.:-0.5577   1st Qu.:-0.547   1st Qu.:-0.4477   1st Qu.:-0.5783  
##  Median : 0.1646   Median : 0.201   Median : 0.1887   Median : 0.0363  
##  Mean   : 0.0006   Mean   : 0.000   Mean   : 0.0011   Mean   : 0.0010  
##  3rd Qu.: 0.7073   3rd Qu.: 1.018   3rd Qu.: 0.6400   3rd Qu.: 0.6300  
##  Max.   : 1.2061   Max.   : 1.018   Max.   : 1.1289   Max.   : 1.5849  
##  NA's   :2775      NA's   :3962     NA's   :2988      NA's   :1546     
##  PSI_90_SAFETY_score
##  Min.   :-6.0575    
##  1st Qu.:-0.4039    
##  Median : 0.0863    
##  Mean   : 0.0009    
##  3rd Qu.: 0.5764    
##  Max.   : 2.3064    
##  NA's   :1594
# Replace the NA's with median values
median_na <- function(x) {
  x[which(is.na(x))] <- median(x, na.rm = T)
  return(x)
}

safety_scores[, 2:ncol(safety_scores)] <- sapply(safety_scores[, -1], median_na)
summary(safety_scores)
##   Provider.ID     COMP_HIP_KNEE_score HAI_1_SIR_score   
##  Min.   : 10001   Min.   :-4.26238    Min.   :-7.53897  
##  1st Qu.:140185   1st Qu.:-0.10422    1st Qu.: 0.15046  
##  Median :260037   Median : 0.07446    Median : 0.15046  
##  Mean   :267984   Mean   : 0.03293    Mean   : 0.07709  
##  3rd Qu.:390209   3rd Qu.: 0.25314    3rd Qu.: 0.15046  
##  Max.   :670112   Max.   : 2.50121    Max.   : 1.05750  
##  HAI_2_SIR_score    HAI_3_SIR_score    HAI_4_SIR_score   HAI_5_SIR_score  
##  Min.   :-5.74767   Min.   :-4.50448   Min.   :-4.4049   Min.   :-5.8483  
##  1st Qu.:-0.05786   1st Qu.: 0.16460   1st Qu.: 0.2012   1st Qu.: 0.1887  
##  Median : 0.12929   Median : 0.16460   Median : 0.2012   Median : 0.1887  
##  Mean   : 0.05481   Mean   : 0.09507   Mean   : 0.1655   Mean   : 0.1174  
##  3rd Qu.: 0.31644   3rd Qu.: 0.16460   3rd Qu.: 0.2012   3rd Qu.: 0.1887  
##  Max.   : 1.05402   Max.   : 1.20615   Max.   : 1.0177   Max.   : 1.1289  
##  HAI_6_SIR_score    PSI_90_SAFETY_score
##  Min.   :-4.73747   Min.   :-6.05751   
##  1st Qu.:-0.27104   1st Qu.:-0.05792   
##  Median : 0.03625   Median : 0.08625   
##  Mean   : 0.01234   Mean   : 0.02916   
##  3rd Qu.: 0.31830   3rd Qu.: 0.34575   
##  Max.   : 1.58486   Max.   : 2.30644
# The safety scores for the provider
provider_safe_scores <- round(safety_scores[which(safety_scores$Provider.ID == 140010),], 3)
provider_safe_scores
##      Provider.ID COMP_HIP_KNEE_score HAI_1_SIR_score HAI_2_SIR_score
## 1125      140010              -0.462          -0.112          -0.214
##      HAI_3_SIR_score HAI_4_SIR_score HAI_5_SIR_score HAI_6_SIR_score
## 1125          -0.244           1.018           0.191          -0.291
##      PSI_90_SAFETY_score
## 1125               -3.23
# Provider.ID COMP_HIP_KNEE_score HAI_1_SIR_score HAI_2_SIR_score HAI_3_SIR_score HAI_4_SIR_score HAI_5_SIR_score HAI_6_SIR_score PSI_90_SAFETY_score
# 140010              -0.462          -0.112          -0.214          -0.244           1.018           0.191          -0.291               -3.23

# Let us calculate the average scores and compare them
average_safety_scores <- round(summarise_all(safety_scores[, -1], .funs = (mean), na.rm = T), 3)
average_safety_scores <- cbind(id = "mean_score", average_safety_scores)
average_safety_scores
##           id COMP_HIP_KNEE_score HAI_1_SIR_score HAI_2_SIR_score
## 1 mean_score               0.033           0.077           0.055
##   HAI_3_SIR_score HAI_4_SIR_score HAI_5_SIR_score HAI_6_SIR_score
## 1           0.095           0.166           0.117           0.012
##   PSI_90_SAFETY_score
## 1               0.029
#         id        COMP_HIP_KNEE_score HAI_1_SIR_score HAI_2_SIR_score HAI_3_SIR_score HAI_4_SIR_score HAI_5_SIR_score HAI_6_SIR_score PSI_90_SAFETY_score
# mean_score               0.033           0.077           0.055           0.095           0.166           0.117           0.012               0.029

prov_s <- round(safety_scores[which(safety_scores$Provider.ID == 140010),], 3)
prov_s <- cbind(id = "prov_s_score", prov_s[, -1])
prov_s
##                id COMP_HIP_KNEE_score HAI_1_SIR_score HAI_2_SIR_score
## 1125 prov_s_score              -0.462          -0.112          -0.214
##      HAI_3_SIR_score HAI_4_SIR_score HAI_5_SIR_score HAI_6_SIR_score
## 1125          -0.244           1.018           0.191          -0.291
##      PSI_90_SAFETY_score
## 1125               -3.23
#           id    Provider.ID   COMP_HIP_KNEE_score HAI_1_SIR_score HAI_2_SIR_score HAI_3_SIR_score HAI_4_SIR_score HAI_5_SIR_score HAI_6_SIR_score PSI_90_SAFETY_score
# prov_s_score      140010              -0.462          -0.112          -0.214          -0.244           1.018           0.191          -0.291               -3.23

average_safety_scores <- rbind(average_safety_scores, prov_s)
average_safety_scores
##                id COMP_HIP_KNEE_score HAI_1_SIR_score HAI_2_SIR_score
## 1      mean_score               0.033           0.077           0.055
## 1125 prov_s_score              -0.462          -0.112          -0.214
##      HAI_3_SIR_score HAI_4_SIR_score HAI_5_SIR_score HAI_6_SIR_score
## 1              0.095           0.166           0.117           0.012
## 1125          -0.244           1.018           0.191          -0.291
##      PSI_90_SAFETY_score
## 1                  0.029
## 1125              -3.230
#       id            COMP_HIP_KNEE_score HAI_1_SIR_score HAI_2_SIR_score HAI_3_SIR_score HAI_4_SIR_score HAI_5_SIR_score HAI_6_SIR_score PSI_90_SAFETY_score
# mean_score               0.033           0.077           0.055           0.095           0.166           0.117           0.012               0.029
# prov_s_score            -0.462          -0.112          -0.214          -0.244           1.018           0.191          -0.291              -3.230

# Except the HAI_4_SIR and HAI_5_SIR measures all the other measures are way below the average scores.

# Let us visualize how these low score measures are performing with respect to the ratings

# merging safety scores with all_scores
str(all_scores)
## 'data.frame':    2414 obs. of  11 variables:
##  $ Provider.ID  : int  10001 10005 10006 10011 10012 10016 10019 10021 10023 10024 ...
##  $ radm_score   : num  -0.04 0.002 0.006 0.069 -0.013 0.004 -0.056 0.007 -0.085 0.009 ...
##  $ mort_score   : num  -0.021 -0.164 -0.182 -0.009 -0.162 -0.069 -0.069 0.037 -0.114 -0.087 ...
##  $ safety_score : num  -0.104 -0.005 -0.047 -0.052 0.06 0.032 0.033 0.04 -0.014 -0.075 ...
##  $ expe_score   : num  -0.033 -0.017 -0.039 -0.03 0.017 -0.007 -0.021 0.023 -0.004 0.026 ...
##  $ medi_score   : num  0.033 -0.07 0.137 -0.08 -0.112 -0.271 -0.101 -0.042 -0.031 0.089 ...
##  $ time_score   : num  -0.043 0.071 -0.006 -0.229 0.075 -0.048 -0.042 0.082 -0.031 0.035 ...
##  $ effe_score   : num  0.008 0.022 0.017 -0.088 0.009 0.023 -0.01 0.024 0.014 -0.01 ...
##  $ final_score  : num  -0.046 -0.04 -0.052 -0.014 -0.024 -0.021 -0.033 0.025 -0.054 -0.023 ...
##  $ cluster_id   : int  3 3 3 5 5 5 5 4 3 5 ...
##  $ newcluster_id: Factor w/ 5 levels "1","2","3","4",..: 2 2 2 3 3 3 3 4 2 3 ...
safety_scores <- merge(safety_scores, all_scores, by = "Provider.ID")
str(safety_scores)
## 'data.frame':    2414 obs. of  19 variables:
##  $ Provider.ID        : int  10001 10005 10006 10011 10012 10016 10019 10021 10023 10024 ...
##  $ COMP_HIP_KNEE_score: num  -1.355 0.0745 -1.355 -1.1763 0.4318 ...
##  $ HAI_1_SIR_score    : num  -2.3512 -1.023 0.3895 -0.0337 0.1505 ...
##  $ HAI_2_SIR_score    : num  -2.088 0.05 -0.357 0.184 1.054 ...
##  $ HAI_3_SIR_score    : num  -1.135 0.723 0.818 -0.582 0.165 ...
##  $ HAI_4_SIR_score    : num  1.018 0.201 0.201 1.018 0.201 ...
##  $ HAI_5_SIR_score    : num  0.647 -0.457 -0.312 0.118 0.189 ...
##  $ HAI_6_SIR_score    : num  0.0566 0.7984 0.5887 0.2256 1.148 ...
##  $ PSI_90_SAFETY_score: num  1.2108 0.2304 -0.1156 -0.5769 -0.0579 ...
##  $ radm_score         : num  -0.04 0.002 0.006 0.069 -0.013 0.004 -0.056 0.007 -0.085 0.009 ...
##  $ mort_score         : num  -0.021 -0.164 -0.182 -0.009 -0.162 -0.069 -0.069 0.037 -0.114 -0.087 ...
##  $ safety_score       : num  -0.104 -0.005 -0.047 -0.052 0.06 0.032 0.033 0.04 -0.014 -0.075 ...
##  $ expe_score         : num  -0.033 -0.017 -0.039 -0.03 0.017 -0.007 -0.021 0.023 -0.004 0.026 ...
##  $ medi_score         : num  0.033 -0.07 0.137 -0.08 -0.112 -0.271 -0.101 -0.042 -0.031 0.089 ...
##  $ time_score         : num  -0.043 0.071 -0.006 -0.229 0.075 -0.048 -0.042 0.082 -0.031 0.035 ...
##  $ effe_score         : num  0.008 0.022 0.017 -0.088 0.009 0.023 -0.01 0.024 0.014 -0.01 ...
##  $ final_score        : num  -0.046 -0.04 -0.052 -0.014 -0.024 -0.021 -0.033 0.025 -0.054 -0.023 ...
##  $ cluster_id         : int  3 3 3 5 5 5 5 4 3 5 ...
##  $ newcluster_id      : Factor w/ 5 levels "1","2","3","4",..: 2 2 2 3 3 3 3 4 2 3 ...
# Measure: COMP_HIP_KNEE_score
summary(safety_scores$COMP_HIP_KNEE_score)
##     Min.  1st Qu.   Median     Mean  3rd Qu.     Max. 
## -4.26238 -0.46158  0.07446 -0.01261  0.61050  2.50121
s1 <- prov_s$COMP_HIP_KNEE_score * 100

CHK_plot <- ggplot(safety_scores, aes(x = factor(as.character(newcluster_id)), y = COMP_HIP_KNEE_score * 100, fill = newcluster_id)) +
  geom_boxplot() +
  xlab("Star Ratings") +
  ylab("COMP_HIP_KNEE_score") +
  theme_light() +
  scale_y_continuous(breaks = 100 * seq(-4, 2.5, 0.5))
safe_chk_p <- CHK_plot +
  geom_hline(yintercept = s1, col = "black") +
  geom_text(aes(0, s1, label = s1, vjust = -1, hjust = -1))
safe_chk_p

# The provider's score for COMP_HIP_KNEE_score is way below the average scores for all the ratings.
# This is a cause of concern, the provider has to improve on this score to improve their ratings.
# Measure: HAI_1_SIR_score

summary(safety_scores$HAI_1_SIR_score)
##     Min.  1st Qu.   Median     Mean  3rd Qu.     Max. 
## -7.53897 -0.25261  0.15046  0.05063  0.55402  1.05750
s2 <- prov_s$HAI_1_SIR_score * 100

HAI1_plot <- ggplot(safety_scores, aes(x = factor(as.character(newcluster_id)), y = HAI_1_SIR_score * 100, fill = newcluster_id)) +
  geom_boxplot() +
  xlab("Star Ratings") +
  ylab("HAI_1_SIR_score") +
  theme_light() +
  scale_y_continuous(breaks = 100 * seq(-7, 1, 0.5))
safe_hai1_p <- HAI1_plot +
  geom_hline(yintercept = s2, col = "black") +
  geom_text(aes(0, s2, label = s2, vjust = -1, hjust = -1))
safe_hai1_p

# HAI_1_SIR score of the provider is lower than the average scores for ratings 3, 4, 5 and
# just below the average score for rating 2.

# Measure: HAI_2_SIR_score

summary(safety_scores$HAI_2_SIR_score)
##     Min.  1st Qu.   Median     Mean  3rd Qu.     Max. 
## -5.74767 -0.47399  0.10837 -0.02428  0.61588  1.05402
s3 <- prov_s$HAI_2_SIR_score * 100

HAI2_plot <- ggplot(safety_scores, aes(x = factor(as.character(newcluster_id)), y = HAI_2_SIR_score * 100, fill = newcluster_id)) +
  geom_boxplot() +
  xlab("Star Ratings") +
  ylab("HAI_2_SIR_score") +
  theme_light() +
  scale_y_continuous(breaks = 100 * seq(-5, 1, 0.5))
safe_hai2_p <- HAI2_plot +
  geom_hline(yintercept = s3, col = "black") +
  geom_text(aes(0, s3, label = s3, vjust = -1, hjust = -1))
safe_hai2_p

# HAI_2_SIR score of the provider is lower than the average scores for ratings 3, 4, 5 and
# just below the average scores for ratings 1 & 2.

# Measure: HAI_3_SIR_score

summary(safety_scores$HAI_3_SIR_score)
##     Min.  1st Qu.   Median     Mean  3rd Qu.     Max. 
## -4.50448 -0.29764  0.16460  0.03225  0.51700  1.20615
s4 <- prov_s$HAI_3_SIR_score * 100

HAI3_plot <- ggplot(safety_scores, aes(x = factor(as.character(newcluster_id)), y = HAI_3_SIR_score * 100, fill = newcluster_id)) +
  geom_boxplot() +
  xlab("Star Ratings") +
  ylab("HAI_3_SIR_score") +
  theme_light() +
  scale_y_continuous(breaks = 100 * seq(-5, 1, 0.5))
safe_hai3_p <- HAI3_plot +
  geom_hline(yintercept = s4, col = "black") +
  geom_text(aes(0, s4, label = s4, vjust = -1, hjust = -1))
safe_hai3_p

# HAI_3_SIR score of the provider is way below the average scores for all the ratings.
# This is a cause of concern, the provider has to improve on this score to improve their ratings.

# Measure: HAI_6_SIR_score

summary(safety_scores$HAI_6_SIR_score)
##     Min.  1st Qu.   Median     Mean  3rd Qu.     Max. 
## -4.73747 -0.61863 -0.08511 -0.13336  0.41540  1.58486
s5 <- prov_s$HAI_6_SIR_score * 100

HAI6_plot <- ggplot(safety_scores, aes(x = factor(as.character(newcluster_id)), y = HAI_6_SIR_score * 100, fill = newcluster_id)) +
  geom_boxplot() +
  xlab("Star Ratings") +
  ylab("HAI_6_SIR_score") +
  theme_light() +
  scale_y_continuous(breaks = 100 * seq(-5, 1, 0.5))
safe_hai6_p <- HAI6_plot +
  geom_hline(yintercept = s5, col = "black") +
  geom_text(aes(0, s5, label = s5, vjust = -1, hjust = -1))
safe_hai6_p

# HAI_6_SIR score of the provider is below the average scores for all the ratings.
# This is a cause of concern, the provider has to improve on this score to improve their ratings.

# Measure: PSI_90_SAFETY_score

summary(safety_scores$PSI_90_SAFETY_score)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
## -6.0575 -0.5193  0.1151 -0.0289  0.6918  2.3064
s6 <- prov_s$PSI_90_SAFETY_score * 100

PSI90_plot <- ggplot(safety_scores, aes(x = factor(as.character(newcluster_id)), y = PSI_90_SAFETY_score * 100, fill = newcluster_id)) +
  geom_boxplot() +
  xlab("Star Ratings") +
  ylab("PSI_90_SAFETY_score") +
  theme_light() +
  scale_y_continuous(breaks = 100 * seq(-5, 2, 0.75))
safe_psi90_p <- PSI90_plot +
  geom_hline(yintercept = s6, col = "black") +
  geom_text(aes(0, s6, label = s6, vjust = -1, hjust = -1))
safe_psi90_p

# PSI_90_SAFETY score of the provider is way below the average scores for all the ratings.
# The provider is doing poorly in this measure.
# This is a cause of concern, the provider has to improve on this score to improve their ratings.

# Let us plot all the safety graphs together.
grid_plot4 <- plot_grid(safe_chk_p, safe_hai1_p, safe_hai2_p, safe_hai3_p, safe_hai6_p, safe_psi90_p,
                        labels = c('COMP_HIP_KNEE_score', 'HAI_1_SIR_score', 'HAI_2_SIR_score', 'HAI_3_SIR_score', 'HAI_6_SIR_score', 'PSI_90_SAFETY_score'),
                        ncol = 2, nrow = 3)
grid_plot4

2.Experience

#————–#

# we will plot the provider score in the y intercept.

h2 <- provider_140010_gp_scores$expe_score * 100
expe_plot +
  geom_hline(yintercept = h2, col = "maroon") +
  geom_text(aes(0, h2, label = h2, vjust = -1, hjust = -1))

expe_scores <- expe_master[, -c(2:8)]
summary(expe_scores)
##   Provider.ID     H_CLEAN_LINEAR_SCORE H_COMP_1_LINEAR_SCORE
##  Min.   : 10001   Min.   :-3.1829      Min.   :-4.8617      
##  1st Qu.:140185   1st Qu.:-0.5938      1st Qu.:-0.5235      
##  Median :260037   Median :-0.0759      Median : 0.2652      
##  Mean   :267984   Mean   : 0.0003      Mean   : 0.0007      
##  3rd Qu.:390209   3rd Qu.: 0.7008      3rd Qu.: 0.6596      
##  Max.   :670112   Max.   : 2.7721      Max.   : 2.6314      
##                   NA's   :1310         NA's   :1310         
##  H_COMP_2_LINEAR_SCORE H_COMP_3_LINEAR_SCORE H_COMP_4_LINEAR_SCORE
##  Min.   :-4.4601       Min.   :-4.3050       Min.   :-4.8584      
##  1st Qu.:-0.7772       1st Qu.:-0.5175       1st Qu.:-0.6064      
##  Median : 0.0412       Median :-0.0626       Median : 0.1667      
##  Mean   : 0.0010       Mean   : 0.0001       Mean   : 0.0000      
##  3rd Qu.: 0.4504       3rd Qu.: 0.6198       3rd Qu.: 0.5533      
##  Max.   : 2.9056       Max.   : 2.6670       Max.   : 3.0972      
##  NA's   :1310          NA's   :1310          NA's   :1310         
##  H_COMP_5_LINEAR_SCORE H_COMP_6_LINEAR_SCORE H_COMP_7_LINEAR_SCORE
##  Min.   :-3.9139       Min.   :-4.5537       Min.   :-4.0139      
##  1st Qu.:-0.6485       1st Qu.:-0.5344       1st Qu.:-0.5316      
##  Median : 0.0513       Median : 0.0276       Median : 0.1649      
##  Mean   : 0.0001       Mean   : 0.0005       Mean   : 0.0005      
##  3rd Qu.: 0.5178       3rd Qu.: 0.5897       3rd Qu.: 0.5131      
##  Max.   : 3.2190       Max.   : 2.2758       Max.   : 3.6472      
##  NA's   :1310          NA's   :1310          NA's   :1310         
##  H_HSP_RATING_LINEAR_SCORE H_QUIET_LINEAR_SCORE H_RECMND_LINEAR_SCORE
##  Min.   :-4.5255           Min.   :-3.4634      Min.   :-4.5030      
##  1st Qu.:-0.5304           1st Qu.:-0.5967      1st Qu.:-0.6938      
##  Median : 0.0842           Median :-0.0098      Median : 0.2213      
##  Mean   : 0.0013           Mean   : 0.0004      Mean   : 0.0015      
##  3rd Qu.: 0.6988           3rd Qu.: 0.7729      3rd Qu.: 0.6788      
##  Max.   : 2.7213           Max.   : 2.7295      Max.   : 2.5089      
##  NA's   :1310              NA's   :1310         NA's   :1310
# Replace the NA's with median values
expe_scores[, 2:ncol(expe_scores)] <- sapply(expe_scores[, -1], median_na)
summary(expe_scores)
##   Provider.ID     H_CLEAN_LINEAR_SCORE H_COMP_1_LINEAR_SCORE
##  Min.   : 10001   Min.   :-3.18290     Min.   :-4.8617      
##  1st Qu.:140185   1st Qu.:-0.33486     1st Qu.:-0.1292      
##  Median :260037   Median :-0.07595     Median : 0.2652      
##  Mean   :267984   Mean   :-0.02043     Mean   : 0.0726      
##  3rd Qu.:390209   3rd Qu.: 0.44188     3rd Qu.: 0.2652      
##  Max.   :670112   Max.   : 2.77210     Max.   : 2.6314      
##  H_COMP_2_LINEAR_SCORE H_COMP_3_LINEAR_SCORE H_COMP_4_LINEAR_SCORE
##  Min.   :-4.46010      Min.   :-4.30501      Min.   :-4.85845     
##  1st Qu.:-0.36803      1st Qu.:-0.29003      1st Qu.:-0.21983     
##  Median : 0.04118      Median :-0.06257      Median : 0.16672     
##  Mean   : 0.01196      Mean   :-0.01693      Mean   : 0.04532     
##  3rd Qu.: 0.45038      3rd Qu.: 0.39235      3rd Qu.: 0.16672     
##  Max.   : 2.90563      Max.   : 2.66695      Max.   : 3.09723     
##  H_COMP_5_LINEAR_SCORE H_COMP_6_LINEAR_SCORE H_COMP_7_LINEAR_SCORE
##  Min.   :-3.91389      Min.   :-4.553676     Min.   :-4.01386     
##  1st Qu.:-0.41523      1st Qu.:-0.253380     1st Qu.:-0.18335     
##  Median : 0.05126      Median : 0.027637     Median : 0.16488     
##  Mean   : 0.01403      Mean   : 0.007893     Mean   : 0.04519     
##  3rd Qu.: 0.28451      3rd Qu.: 0.308654     3rd Qu.: 0.51311     
##  Max.   : 3.21899      Max.   : 2.275770     Max.   : 3.64717     
##  H_HSP_RATING_LINEAR_SCORE H_QUIET_LINEAR_SCORE H_RECMND_LINEAR_SCORE
##  Min.   :-4.52553          Min.   :-3.463444    Min.   :-4.50301     
##  1st Qu.:-0.22313          1st Qu.:-0.401084    1st Qu.:-0.23626     
##  Median : 0.08419          Median :-0.009761    Median : 0.22126     
##  Mean   : 0.02384          Mean   :-0.002380    Mean   : 0.06124     
##  3rd Qu.: 0.39150          3rd Qu.: 0.381562    3rd Qu.: 0.45003     
##  Max.   : 2.72131          Max.   : 2.729500    Max.   : 2.50890
# The experience scores for the provider
provider_expe_scores <- round(expe_scores[which(expe_scores$Provider.ID == 140010),], 3)
provider_expe_scores
##      Provider.ID H_CLEAN_LINEAR_SCORE H_COMP_1_LINEAR_SCORE
## 1125      140010                0.183                -0.129
##      H_COMP_2_LINEAR_SCORE H_COMP_3_LINEAR_SCORE H_COMP_4_LINEAR_SCORE
## 1125                -0.368                 -0.29                 -0.22
##      H_COMP_5_LINEAR_SCORE H_COMP_6_LINEAR_SCORE H_COMP_7_LINEAR_SCORE
## 1125                -0.648                -0.815                -0.183
##      H_HSP_RATING_LINEAR_SCORE H_QUIET_LINEAR_SCORE H_RECMND_LINEAR_SCORE
## 1125                     0.084               -0.205                  0.45
# Provider.ID H_CLEAN_LINEAR_SCORE H_COMP_1_LINEAR_SCORE H_COMP_2_LINEAR_SCORE H_COMP_3_LINEAR_SCORE H_COMP_4_LINEAR_SCORE H_COMP_5_LINEAR_SCORE H_COMP_6_LINEAR_SCORE
# 140010                0.183                -0.129                -0.368                 -0.29                 -0.22                -0.648                -0.815
# H_COMP_7_LINEAR_SCORE H_HSP_RATING_LINEAR_SCORE H_QUIET_LINEAR_SCORE H_RECMND_LINEAR_SCORE
# -0.183                     0.084               -0.205                  0.45

# Let us calculate the average scores and compare them
average_expe_scores <- round(summarise_all(expe_scores[, -1], .funs = (mean), na.rm = T), 3)
average_expe_scores <- cbind(id = "mean_score", average_expe_scores)
average_expe_scores
##           id H_CLEAN_LINEAR_SCORE H_COMP_1_LINEAR_SCORE
## 1 mean_score                -0.02                 0.073
##   H_COMP_2_LINEAR_SCORE H_COMP_3_LINEAR_SCORE H_COMP_4_LINEAR_SCORE
## 1                 0.012                -0.017                 0.045
##   H_COMP_5_LINEAR_SCORE H_COMP_6_LINEAR_SCORE H_COMP_7_LINEAR_SCORE
## 1                 0.014                 0.008                 0.045
##   H_HSP_RATING_LINEAR_SCORE H_QUIET_LINEAR_SCORE H_RECMND_LINEAR_SCORE
## 1                     0.024               -0.002                 0.061
#         id            H_CLEAN_LINEAR_SCORE H_COMP_1_LINEAR_SCORE H_COMP_2_LINEAR_SCORE H_COMP_3_LINEAR_SCORE H_COMP_4_LINEAR_SCORE H_COMP_5_LINEAR_SCORE H_COMP_6_LINEAR_SCORE
# mean_score                -0.02                 0.073                 0.012                -0.017                 0.045                 0.014                 0.008
# H_COMP_7_LINEAR_SCORE H_HSP_RATING_LINEAR_SCORE H_QUIET_LINEAR_SCORE H_RECMND_LINEAR_SCORE
# 0.045                     0.024               -0.002                 0.061

prov_e <- round(expe_scores[which(expe_scores$Provider.ID == 140010),], 3)
prov_e <- cbind(id = "prov_e_score", prov_e[, -1])
prov_e
##                id H_CLEAN_LINEAR_SCORE H_COMP_1_LINEAR_SCORE
## 1125 prov_e_score                0.183                -0.129
##      H_COMP_2_LINEAR_SCORE H_COMP_3_LINEAR_SCORE H_COMP_4_LINEAR_SCORE
## 1125                -0.368                 -0.29                 -0.22
##      H_COMP_5_LINEAR_SCORE H_COMP_6_LINEAR_SCORE H_COMP_7_LINEAR_SCORE
## 1125                -0.648                -0.815                -0.183
##      H_HSP_RATING_LINEAR_SCORE H_QUIET_LINEAR_SCORE H_RECMND_LINEAR_SCORE
## 1125                     0.084               -0.205                  0.45
#           id      H_CLEAN_LINEAR_SCORE H_COMP_1_LINEAR_SCORE H_COMP_2_LINEAR_SCORE H_COMP_3_LINEAR_SCORE H_COMP_4_LINEAR_SCORE H_COMP_5_LINEAR_SCORE H_COMP_6_LINEAR_SCORE
# prov_e_score                0.183                -0.129                -0.368                 -0.29                 -0.22                -0.648                -0.815
# H_COMP_7_LINEAR_SCORE H_HSP_RATING_LINEAR_SCORE H_QUIET_LINEAR_SCORE H_RECMND_LINEAR_SCORE
# -0.183                     0.084               -0.205                  0.45

average_expe_scores <- rbind(average_expe_scores, prov_e)
average_expe_scores
##                id H_CLEAN_LINEAR_SCORE H_COMP_1_LINEAR_SCORE
## 1      mean_score               -0.020                 0.073
## 1125 prov_e_score                0.183                -0.129
##      H_COMP_2_LINEAR_SCORE H_COMP_3_LINEAR_SCORE H_COMP_4_LINEAR_SCORE
## 1                    0.012                -0.017                 0.045
## 1125                -0.368                -0.290                -0.220
##      H_COMP_5_LINEAR_SCORE H_COMP_6_LINEAR_SCORE H_COMP_7_LINEAR_SCORE
## 1                    0.014                 0.008                 0.045
## 1125                -0.648                -0.815                -0.183
##      H_HSP_RATING_LINEAR_SCORE H_QUIET_LINEAR_SCORE H_RECMND_LINEAR_SCORE
## 1                        0.024               -0.002                 0.061
## 1125                     0.084               -0.205                 0.450
#         id            H_CLEAN_LINEAR_SCORE H_COMP_1_LINEAR_SCORE H_COMP_2_LINEAR_SCORE H_COMP_3_LINEAR_SCORE H_COMP_4_LINEAR_SCORE H_COMP_5_LINEAR_SCORE H_COMP_6_LINEAR_SCORE
#   mean_score               -0.020                 0.073                 0.012                -0.017                 0.045                 0.014                 0.008
# prov_e_score                0.183                -0.129                -0.368                -0.290                -0.220                -0.648                -0.815
# H_COMP_7_LINEAR_SCORE H_HSP_RATING_LINEAR_SCORE H_QUIET_LINEAR_SCORE H_RECMND_LINEAR_SCORE
#    0.045                     0.024               -0.002                 0.061
#   -0.183                     0.084               -0.205                 0.450

# The experience measures are very important.
# We notice that the provider's scores are very low compared to the average scores of H_COMP_1_LINEAR_SCORE, H_COMP_2_LINEAR_SCORE, H_COMP_3_LINEAR_SCORE,
# H_COMP_4_LINEAR_SCORE, H_COMP_5_LINEAR_SCORE, H_COMP_6_LINEAR_SCORE, H_COMP_7_LINEAR_SCORE, H_QUIET_LINEAR_SCORE.
# The scores for H_CLEAN_LINEAR_SCORE and H_RECMND_LINEAR_SCORE are very good compared to the average scores.

# Let us visualize how these low score measures are performing with respect to the ratings

# merging expe scores with all_scores
str(all_scores)
## 'data.frame':    2414 obs. of  11 variables:
##  $ Provider.ID  : int  10001 10005 10006 10011 10012 10016 10019 10021 10023 10024 ...
##  $ radm_score   : num  -0.04 0.002 0.006 0.069 -0.013 0.004 -0.056 0.007 -0.085 0.009 ...
##  $ mort_score   : num  -0.021 -0.164 -0.182 -0.009 -0.162 -0.069 -0.069 0.037 -0.114 -0.087 ...
##  $ safety_score : num  -0.104 -0.005 -0.047 -0.052 0.06 0.032 0.033 0.04 -0.014 -0.075 ...
##  $ expe_score   : num  -0.033 -0.017 -0.039 -0.03 0.017 -0.007 -0.021 0.023 -0.004 0.026 ...
##  $ medi_score   : num  0.033 -0.07 0.137 -0.08 -0.112 -0.271 -0.101 -0.042 -0.031 0.089 ...
##  $ time_score   : num  -0.043 0.071 -0.006 -0.229 0.075 -0.048 -0.042 0.082 -0.031 0.035 ...
##  $ effe_score   : num  0.008 0.022 0.017 -0.088 0.009 0.023 -0.01 0.024 0.014 -0.01 ...
##  $ final_score  : num  -0.046 -0.04 -0.052 -0.014 -0.024 -0.021 -0.033 0.025 -0.054 -0.023 ...
##  $ cluster_id   : int  3 3 3 5 5 5 5 4 3 5 ...
##  $ newcluster_id: Factor w/ 5 levels "1","2","3","4",..: 2 2 2 3 3 3 3 4 2 3 ...
expe_scores <- merge(expe_scores, all_scores, by = "Provider.ID")
str(expe_scores)
## 'data.frame':    2414 obs. of  22 variables:
##  $ Provider.ID              : int  10001 10005 10006 10011 10012 10016 10019 10021 10023 10024 ...
##  $ H_CLEAN_LINEAR_SCORE     : num  -0.853 -1.112 -1.112 -1.629 -0.335 ...
##  $ H_COMP_1_LINEAR_SCORE    : num  -0.524 -0.129 -0.129 -0.524 0.265 ...
##  $ H_COMP_2_LINEAR_SCORE    : num  0.0412 0.8596 0.8596 0.0412 0.8596 ...
##  $ H_COMP_3_LINEAR_SCORE    : num  -1.1999 -0.29 -0.5175 -0.745 -0.0626 ...
##  $ H_COMP_4_LINEAR_SCORE    : num  -0.606 0.167 -0.22 -0.606 0.167 ...
##  $ H_COMP_5_LINEAR_SCORE    : num  -0.415 0.285 -0.182 -1.115 -0.415 ...
##  $ H_COMP_6_LINEAR_SCORE    : num  0.0276 0.3087 -1.0964 -0.2534 0.3087 ...
##  $ H_COMP_7_LINEAR_SCORE    : num  0.165 -0.183 -0.532 -0.183 -0.88 ...
##  $ H_HSP_RATING_LINEAR_SCORE: num  0.0842 0.3915 -1.1451 -0.2231 0.0842 ...
##  $ H_QUIET_LINEAR_SCORE     : num  0.969 0.577 0.577 0.186 0.577 ...
##  $ H_RECMND_LINEAR_SCORE    : num  0.45 0.221 -0.923 -0.236 -0.694 ...
##  $ radm_score               : num  -0.04 0.002 0.006 0.069 -0.013 0.004 -0.056 0.007 -0.085 0.009 ...
##  $ mort_score               : num  -0.021 -0.164 -0.182 -0.009 -0.162 -0.069 -0.069 0.037 -0.114 -0.087 ...
##  $ safety_score             : num  -0.104 -0.005 -0.047 -0.052 0.06 0.032 0.033 0.04 -0.014 -0.075 ...
##  $ expe_score               : num  -0.033 -0.017 -0.039 -0.03 0.017 -0.007 -0.021 0.023 -0.004 0.026 ...
##  $ medi_score               : num  0.033 -0.07 0.137 -0.08 -0.112 -0.271 -0.101 -0.042 -0.031 0.089 ...
##  $ time_score               : num  -0.043 0.071 -0.006 -0.229 0.075 -0.048 -0.042 0.082 -0.031 0.035 ...
##  $ effe_score               : num  0.008 0.022 0.017 -0.088 0.009 0.023 -0.01 0.024 0.014 -0.01 ...
##  $ final_score              : num  -0.046 -0.04 -0.052 -0.014 -0.024 -0.021 -0.033 0.025 -0.054 -0.023 ...
##  $ cluster_id               : int  3 3 3 5 5 5 5 4 3 5 ...
##  $ newcluster_id            : Factor w/ 5 levels "1","2","3","4",..: 2 2 2 3 3 3 3 4 2 3 ...
# Measure: H_COMP_1_LINEAR_SCORE
summary(expe_scores$H_COMP_1_LINEAR_SCORE)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
## -4.8617 -0.5235 -0.1292 -0.1290  0.2652  2.2371
e1 <- prov_e$H_COMP_1_LINEAR_SCORE * 100

HC1L_plot <- ggplot(expe_scores, aes(x = factor(as.character(newcluster_id)), y = H_COMP_1_LINEAR_SCORE * 100, fill = newcluster_id)) +
  geom_boxplot() +
  xlab("Star Ratings") +
  ylab("H_COMP_1_LINEAR_SCORE") +
  theme_light() +
  scale_y_continuous(breaks = 100 * seq(-4, 2.5, 0.5))
expe_hc1l_p <- HC1L_plot +
  geom_hline(yintercept = e1, col = "black") +
  geom_text(aes(0, e1, label = e1, vjust = -1, hjust = -1))
expe_hc1l_p

# The H_COMP_1_LINEAR_SCORE of the provider (-0.129) is above the ratings 1 &2 and is equal to the avaerage score of rating 3 and lower than the average score of ratings 4 & 5.

# Measure: H_COMP_2_LINEAR_SCORE
summary(expe_scores$H_COMP_2_LINEAR_SCORE)
##     Min.  1st Qu.   Median     Mean  3rd Qu.     Max. 
## -4.46010 -0.77724  0.04118 -0.18292  0.45038  2.49642
e2 <- prov_e$H_COMP_2_LINEAR_SCORE * 100

HC2L_plot <- ggplot(expe_scores, aes(x = factor(as.character(newcluster_id)), y = H_COMP_2_LINEAR_SCORE * 100, fill = newcluster_id)) +
  geom_boxplot() +
  xlab("Star Ratings") +
  ylab("H_COMP_2_LINEAR_SCORE") +
  theme_light() +
  scale_y_continuous(breaks = 100 * seq(-4, 2.5, 0.5))
expe_hc2l_p <- HC2L_plot +
  geom_hline(yintercept = e2, col = "black") +
  geom_text(aes(0, e2, label = e2, vjust = -1, hjust = -1))
expe_hc2l_p

# The H_COMP_2_LINEAR_SCORE of the provider is above the ratings 1 &2 and is equal to the avaerage score of rating 3 and lower than the average score of ratings 4 & 5.

# Measure: H_COMP_3_LINEAR_SCORE
summary(expe_scores$H_COMP_3_LINEAR_SCORE)
##     Min.  1st Qu.   Median     Mean  3rd Qu.     Max. 
## -4.30501 -0.74495 -0.06257 -0.20950  0.39235  2.43949
e3 <- prov_e$H_COMP_3_LINEAR_SCORE * 100

HC3L_plot <- ggplot(expe_scores, aes(x = factor(as.character(newcluster_id)), y = H_COMP_3_LINEAR_SCORE * 100, fill = newcluster_id)) +
  geom_boxplot() +
  xlab("Star Ratings") +
  ylab("H_COMP_3_LINEAR_SCORE") +
  theme_light() +
  scale_y_continuous(breaks = 100 * seq(-4, 2.5, 0.5))
expe_hc3l_p <- HC3L_plot +
  geom_hline(yintercept = e3, col = "black") +
  geom_text(aes(0, e3, label = e3, vjust = -1, hjust = -1))
expe_hc3l_p

# The H_COMP_3_LINEAR_SCORE of the provider is above the ratings 1 &2 and is equal to the avaerage score of rating 3 and lower than the average score of ratings 4 & 5.

# Measure: H_COMP_4_LINEAR_SCORE
summary(expe_scores$H_COMP_4_LINEAR_SCORE)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
## -4.4719 -0.6064 -0.2198 -0.1337  0.5533  2.4860
e4 <- prov_e$H_COMP_4_LINEAR_SCORE * 100

HC4L_plot <- ggplot(expe_scores, aes(x = factor(as.character(newcluster_id)), y = H_COMP_4_LINEAR_SCORE * 100, fill = newcluster_id)) +
  geom_boxplot() +
  xlab("Star Ratings") +
  ylab("H_COMP_4_LINEAR_SCORE") +
  theme_light() +
  scale_y_continuous(breaks = 100 * seq(-4, 2.5, 0.5))
expe_hc4l_p <- HC4L_plot +
  geom_hline(yintercept = e4, col = "black") +
  geom_text(aes(0, e4, label = e4, vjust = -1, hjust = -1))
expe_hc4l_p

# Measure: H_COMP_5_LINEAR_SCORE
summary(expe_scores$H_COMP_5_LINEAR_SCORE)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
## -3.9139 -0.6485 -0.1820 -0.1808  0.2845  3.0834
e5 <- prov_e$H_COMP_5_LINEAR_SCORE * 100

HC5L_plot <- ggplot(expe_scores, aes(x = factor(as.character(newcluster_id)), y = H_COMP_5_LINEAR_SCORE * 100, fill = newcluster_id)) +
  geom_boxplot() +
  xlab("Star Ratings") +
  ylab("H_COMP_5_LINEAR_SCORE") +
  theme_light() +
  scale_y_continuous(breaks = 100 * seq(-4, 2.5, 0.5))
expe_hc5l_p <- HC5L_plot +
  geom_hline(yintercept = e5, col = "black") +
  geom_text(aes(0, e5, label = e5, vjust = -1, hjust = -1))
expe_hc5l_p

# The H_COMP_5_LINEAR_SCORE of the provider is above the ratings 1 and is equal to the avaerage score of rating 2 and lower than the average score of ratings 3, 4 & 5.

# Measure: H_COMP_6_LINEAR_SCORE
summary(expe_scores$H_COMP_6_LINEAR_SCORE)
##     Min.  1st Qu.   Median     Mean  3rd Qu.     Max. 
## -4.55368 -0.53440  0.02764 -0.05276  0.58967  2.27577
e6 <- prov_e$H_COMP_6_LINEAR_SCORE * 100

HC6L_plot <- ggplot(expe_scores, aes(x = factor(as.character(newcluster_id)), y = H_COMP_6_LINEAR_SCORE * 100, fill = newcluster_id)) +
  geom_boxplot() +
  xlab("Star Ratings") +
  ylab("H_COMP_6_LINEAR_SCORE") +
  theme_light() +
  scale_y_continuous(breaks = 100 * seq(-4, 2.5, 0.5))
expe_hc6l_p <- HC6L_plot +
  geom_hline(yintercept = e6, col = "black") +
  geom_text(aes(0, e6, label = e6, vjust = -1, hjust = -1))
expe_hc6l_p

# The H_COMP_6_LINEAR_SCORE of the provider is above the ratings 1 and lower than the average score of ratings 2, 3, 4 & 5.

# Measure: H_COMP_7_LINEAR_SCORE
summary(expe_scores$H_COMP_7_LINEAR_SCORE)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
## -4.0139 -0.5316 -0.1833 -0.1236  0.5131  3.6472
e7 <- prov_e$H_COMP_7_LINEAR_SCORE * 100

HC7L_plot <- ggplot(expe_scores, aes(x = factor(as.character(newcluster_id)), y = H_COMP_7_LINEAR_SCORE * 100, fill = newcluster_id)) +
  geom_boxplot() +
  xlab("Star Ratings") +
  ylab("H_COMP_7_LINEAR_SCORE") +
  theme_light() +
  scale_y_continuous(breaks = 100 * seq(-4, 2.5, 0.5))
expe_hc7l_p <- HC7L_plot +
  geom_hline(yintercept = e7, col = "black") +
  geom_text(aes(0, e7, label = e7, vjust = -1, hjust = -1))
expe_hc7l_p

# The H_COMP_7_LINEAR_SCORE of the provider is above the ratings 1 &2 and is equal to the avaerage score of rating 3 and lower than the average score of ratings 4 & 5.

# Measure: H_QUIET_LINEAR_SCORE
summary(expe_scores$H_QUIET_LINEAR_SCORE)
##      Min.   1st Qu.    Median      Mean   3rd Qu.      Max. 
## -3.463444 -0.792407 -0.009761 -0.187534  0.381562  1.946854
e8 <- prov_e$H_QUIET_LINEAR_SCORE * 100

HQL_plot <- ggplot(expe_scores, aes(x = factor(as.character(newcluster_id)), y = H_QUIET_LINEAR_SCORE * 100, fill = newcluster_id)) +
  geom_boxplot() +
  xlab("Star Ratings") +
  ylab("H_QUIET_LINEAR_SCORE") +
  theme_light() +
  scale_y_continuous(breaks = 100 * seq(-3, 2, 0.5))
expe_hql_p <- HQL_plot +
  geom_hline(yintercept = e8, col = "black") +
  geom_text(aes(0, e8, label = e8, vjust = -1, hjust = -1))
expe_hql_p

# The H_QUIET_LINEAR_SCORE of the provider is above the ratings 1 &2 and is equal to the avaerage score of rating 3 and lower than the average score of ratings 4 & 5.

grid_plot5 <- plot_grid(expe_hc1l_p, expe_hc2l_p, expe_hc3l_p, expe_hc4l_p, expe_hc5l_p, expe_hc6l_p, expe_hc7l_p, expe_hql_p,
                        labels = c('H_COMP_1_LINEAR_SCORE', 'H_COMP_2_LINEAR_SCORE', 'H_COMP_3_LINEAR_SCORE', 'H_COMP_4_LINEAR_SCORE',
                                   'H_COMP_5_LINEAR_SCORE', 'H_COMP_6_LINEAR_SCORE', 'H_COMP_7_LINEAR_SCORE', 'H_QUIET_LINEAR_SCORE'),
                        ncol = 3, nrow = 3)
grid_plot5

3.Medical

#———–#

# we will plot the provider score in the y intercept.

h3 <- provider_140010_gp_scores$medi_score * 100
medi_plot +
  geom_hline(yintercept = h3, col = "maroon") +
  geom_text(aes(0, h3, label = h3, vjust = -1, hjust = -1))

medi_scores <- medi_master[, -c(2:8)]
summary(medi_scores)
##   Provider.ID      OP_10_score       OP_11_score       OP_13_score     
##  Min.   : 10001   Min.   :-6.5644   Min.   :-8.0024   Min.   :-3.9422  
##  1st Qu.:140185   1st Qu.:-0.1401   1st Qu.:-0.0394   1st Qu.:-0.5537  
##  Median :260037   Median : 0.3191   Median : 0.3886   Median : 0.0428  
##  Mean   :267984   Mean   : 0.0005   Mean   : 0.0011   Mean   : 0.0010  
##  3rd Qu.:390209   3rd Qu.: 0.5634   3rd Qu.: 0.5256   3rd Qu.: 0.6394  
##  Max.   :670112   Max.   : 0.8761   Max.   : 0.5427   Max.   : 2.3296  
##                   NA's   :1189      NA's   :1469      NA's   :2585     
##   OP_14_score        OP_8_score    
##  Min.   :-5.4208   Min.   :-3.141  
##  1st Qu.:-0.6490   1st Qu.:-0.652  
##  Median : 0.1540   Median : 0.098  
##  Mean   : 0.0005   Mean   : 0.000  
##  3rd Qu.: 0.6893   3rd Qu.: 0.660  
##  Max.   : 1.4922   Max.   : 2.880  
##  NA's   :2514      NA's   :3294
medi_scores[, 2:ncol(medi_scores)] <- sapply(medi_scores[, -1], median_na)
summary(medi_scores)
##   Provider.ID      OP_10_score        OP_11_score       OP_13_score      
##  Min.   : 10001   Min.   :-6.56436   Min.   :-8.0024   Min.   :-3.94217  
##  1st Qu.:140185   1st Qu.: 0.06509   1st Qu.: 0.2003   1st Qu.: 0.04281  
##  Median :260037   Median : 0.31913   Median : 0.3886   Median : 0.04281  
##  Mean   :267984   Mean   : 0.07911   Mean   : 0.1193   Mean   : 0.02344  
##  3rd Qu.:390209   3rd Qu.: 0.48524   3rd Qu.: 0.4743   3rd Qu.: 0.04281  
##  Max.   :670112   Max.   : 0.87606   Max.   : 0.5427   Max.   : 2.32955  
##   OP_14_score         OP_8_score      
##  Min.   :-5.42084   Min.   :-3.14132  
##  1st Qu.: 0.15397   1st Qu.: 0.09767  
##  Median : 0.15397   Median : 0.09767  
##  Mean   : 0.08057   Mean   : 0.06667  
##  3rd Qu.: 0.15397   3rd Qu.: 0.09767  
##  Max.   : 1.49221   Max.   : 2.87987
# The medical scores for the provider
provider_medi_scores <- round(medi_scores[which(medi_scores$Provider.ID == 140010),], 3)
provider_medi_scores
##      Provider.ID OP_10_score OP_11_score OP_13_score OP_14_score
## 1125      140010       0.261         0.2      -0.454       0.315
##      OP_8_score
## 1125      0.285
# Provider.ID OP_10_score OP_11_score OP_13_score OP_14_score OP_8_score
#   140010       0.261         0.2      -0.454       0.315      0.285

# Let us calculate the average scores and compare them
average_medi_scores <- round(summarise_all(medi_scores[, -1], .funs = (mean), na.rm = T), 3)
average_medi_scores <- cbind(id = "mean_score", average_medi_scores)
average_medi_scores
##           id OP_10_score OP_11_score OP_13_score OP_14_score OP_8_score
## 1 mean_score       0.079       0.119       0.023       0.081      0.067
#         id    OP_10_score OP_11_score OP_13_score OP_14_score OP_8_score
# mean_score       0.079       0.119       0.023       0.081      0.067

prov_m <- round(medi_scores[which(medi_scores$Provider.ID == 140010),], 3)
prov_m <- cbind(id = "prov_m_score", prov_m[, -1])
prov_m
##                id OP_10_score OP_11_score OP_13_score OP_14_score
## 1125 prov_m_score       0.261         0.2      -0.454       0.315
##      OP_8_score
## 1125      0.285
#           id  OP_10_score OP_11_score OP_13_score OP_14_score OP_8_score
# prov_m_score       0.261         0.2      -0.454       0.315      0.285

average_medi_scores <- rbind(average_medi_scores, prov_m)
average_medi_scores
##                id OP_10_score OP_11_score OP_13_score OP_14_score
## 1      mean_score       0.079       0.119       0.023       0.081
## 1125 prov_m_score       0.261       0.200      -0.454       0.315
##      OP_8_score
## 1         0.067
## 1125      0.285
#          id   OP_10_score OP_11_score OP_13_score OP_14_score OP_8_score
#   mean_score     0.079       0.119       0.023       0.081      0.067
# prov_m_score     0.261       0.200      -0.454       0.315      0.285

# The Medical group have only 4% weightage.
# We see that the provider's scores are very high compared to average scores of all the measures, except OP_13_score.
# OP_13_score has very low score compared to the average score.
# We will check how the scores for this column are.

# Let us visualize how these low score measures are performing with respect to the ratings

# merging medi scores with all_scores
str(all_scores)
## 'data.frame':    2414 obs. of  11 variables:
##  $ Provider.ID  : int  10001 10005 10006 10011 10012 10016 10019 10021 10023 10024 ...
##  $ radm_score   : num  -0.04 0.002 0.006 0.069 -0.013 0.004 -0.056 0.007 -0.085 0.009 ...
##  $ mort_score   : num  -0.021 -0.164 -0.182 -0.009 -0.162 -0.069 -0.069 0.037 -0.114 -0.087 ...
##  $ safety_score : num  -0.104 -0.005 -0.047 -0.052 0.06 0.032 0.033 0.04 -0.014 -0.075 ...
##  $ expe_score   : num  -0.033 -0.017 -0.039 -0.03 0.017 -0.007 -0.021 0.023 -0.004 0.026 ...
##  $ medi_score   : num  0.033 -0.07 0.137 -0.08 -0.112 -0.271 -0.101 -0.042 -0.031 0.089 ...
##  $ time_score   : num  -0.043 0.071 -0.006 -0.229 0.075 -0.048 -0.042 0.082 -0.031 0.035 ...
##  $ effe_score   : num  0.008 0.022 0.017 -0.088 0.009 0.023 -0.01 0.024 0.014 -0.01 ...
##  $ final_score  : num  -0.046 -0.04 -0.052 -0.014 -0.024 -0.021 -0.033 0.025 -0.054 -0.023 ...
##  $ cluster_id   : int  3 3 3 5 5 5 5 4 3 5 ...
##  $ newcluster_id: Factor w/ 5 levels "1","2","3","4",..: 2 2 2 3 3 3 3 4 2 3 ...
medi_scores <- merge(medi_scores, all_scores, by = "Provider.ID")
str(medi_scores)
## 'data.frame':    2414 obs. of  16 variables:
##  $ Provider.ID  : int  10001 10005 10006 10011 10012 10016 10019 10021 10023 10024 ...
##  $ OP_10_score  : num  0.251 -0.423 -0.277 0.642 0.28 ...
##  $ OP_11_score  : num  0.389 -1.204 -0.245 -1.238 -1.306 ...
##  $ OP_13_score  : num  -1.2 -0.3052 2.3296 0.0428 0.7885 ...
##  $ OP_14_score  : num  0.207 -0.649 -0.97 -0.328 0.154 ...
##  $ OP_8_score   : num  0.2996 -0.3783 -0.7822 0.5737 0.0977 ...
##  $ radm_score   : num  -0.04 0.002 0.006 0.069 -0.013 0.004 -0.056 0.007 -0.085 0.009 ...
##  $ mort_score   : num  -0.021 -0.164 -0.182 -0.009 -0.162 -0.069 -0.069 0.037 -0.114 -0.087 ...
##  $ safety_score : num  -0.104 -0.005 -0.047 -0.052 0.06 0.032 0.033 0.04 -0.014 -0.075 ...
##  $ expe_score   : num  -0.033 -0.017 -0.039 -0.03 0.017 -0.007 -0.021 0.023 -0.004 0.026 ...
##  $ medi_score   : num  0.033 -0.07 0.137 -0.08 -0.112 -0.271 -0.101 -0.042 -0.031 0.089 ...
##  $ time_score   : num  -0.043 0.071 -0.006 -0.229 0.075 -0.048 -0.042 0.082 -0.031 0.035 ...
##  $ effe_score   : num  0.008 0.022 0.017 -0.088 0.009 0.023 -0.01 0.024 0.014 -0.01 ...
##  $ final_score  : num  -0.046 -0.04 -0.052 -0.014 -0.024 -0.021 -0.033 0.025 -0.054 -0.023 ...
##  $ cluster_id   : int  3 3 3 5 5 5 5 4 3 5 ...
##  $ newcluster_id: Factor w/ 5 levels "1","2","3","4",..: 2 2 2 3 3 3 3 4 2 3 ...
# Measure: OP_13_score
summary(medi_scores$OP_13_score)
##     Min.  1st Qu.   Median     Mean  3rd Qu.     Max. 
## -3.94217 -0.40460  0.04281 -0.01064  0.44050  2.32955
m1 <- prov_m$OP_13_score * 100

OP13_plot <- ggplot(medi_scores, aes(x = factor(as.character(newcluster_id)), y = OP_13_score * 100, fill = newcluster_id)) +
  geom_boxplot() +
  xlab("Star Ratings") +
  ylab("OP_13_score") +
  theme_light() +
  scale_y_continuous(breaks = 100 * seq(-4, 2.5, 0.5))
medi_op13_p <- OP13_plot +
  geom_hline(yintercept = m1, col = "black") +
  geom_text(aes(0, m1, label = m1, vjust = -1, hjust = -1))
medi_op13_p

OP_13 measure value is very low compared to the average score accorss the ratings.

If the provider fix’s this issue the medical scores will drastically improve.

Summary of provider analysis:

The provider has low scores in the groups safety, patient-experience and medical.

The safety score of provider is -2.2 (on the scale of this plot safe_plot)

The experience score is -0.2 (on this scale expe_plot)

The medical score is -1.3 (on this scale medi_plot)

1.Safety Observations:

The provider’s score for COMP_HIP_KNEE_score is way below the average scores for all the ratings.

This is a cause of concern, the provider has to improve on this area to improve their ratings.

Rate of complications for hip/knee replacement patients

Provider needs to take measures to simplify the procedure involved in the hip/knee replacement operations.

HAI_2_SIR score of the provider is lower than the average scores for ratings 3, 4, 5 and above the average scores for ratings 1 & 2.

Catheter associated urinary tract infections (CAUTI) in ICUs and select wards

Provider needs to take measures to protect the patients from contracting these infections.

HAI_3_SIR score of the provider is way below the average scores for all the ratings.

Surgical Site Infection from colon surgery (SSI: Colon)

Provider needs to take precuations to avoid these infections which are very sensitive and might lead to other severe problems for the patients.

Provider needs to take measures to protect the patients from contracting these infections.

HAI_6_SIR score of the provider is way below the average scores for all the ratings.

Clostridium difficile (C.diff.) Laboratory identified Events (Intestinal Infections)

Provider needs to take measures to protect the patients from contracting these infections.

PSI_90_SAFETY score of the provider is way below the average scores for all the ratings.

The provider is doing poorly in this measure.

Serious complications, provider needs to take effort to resolve these safety issues which the

patients are contracting due to various procedures.

2.Experience Observations:

The experience measures are very important.

We notice that the provider’s scores are very low compared to the average scores of H_COMP_1_LINEAR_SCORE, H_COMP_2_LINEAR_SCORE, H_COMP_3_LINEAR_SCORE,

H_COMP_4_LINEAR_SCORE, H_COMP_5_LINEAR_SCORE, H_COMP_6_LINEAR_SCORE, H_COMP_7_LINEAR_SCORE, H_QUIET_LINEAR_SCORE.

The scores for H_CLEAN_LINEAR_SCORE and H_RECMND_LINEAR_SCORE are very good compared to the average scores.

The H_COMP_1_LINEAR_SCORE of the provider (-0.129) is above the ratings 1 &2 and is equal to the avaerage score of rating 3 and lower than the average score of ratings 4 & 5.

Nurse communication linear mean score - provider needs to work on the communication issues regarding Nurses.

The H_COMP_2_LINEAR_SCORE of the provider is above the ratings 1 &2 and is equal to the avaerage score of rating 3 and lower than the average score of ratings 4 & 5.

Doctor communication linear mean score - provider needs to work on the communication issues regarding Doctors.

The H_COMP_3_LINEAR_SCORE of the provider is above the ratings 1 &2 and is equal to the avaerage score of rating 3 and lower than the average score of ratings 4 & 5.

Staff responsiveness linear mean score - provider needs to work on the communication issues regarding Doctors.

The H_COMP_5_LINEAR_SCORE of the provider is above the ratings 1 and is equal to the avaerage score of rating 2 and lower than the average score of ratings 3, 4 & 5.

Communication about medicines linear mean score - provider needs to ensure the information regarding the medicines properly and clearly.

The H_COMP_6_LINEAR_SCORE of the provider is above the ratings 1 and lower than the average score of ratings 2, 3, 4 & 5.

Discharge information linear mean score - provider needs to ensure the discharge information is provided clearly to the patients.

The H_COMP_7_LINEAR_SCORE of the provider is above the ratings 1 &2 and is equal to the avaerage score of rating 3 and lower than the average score of ratings 4 & 5.

Care transition linear mean score

The H_QUIET_LINEAR_SCORE of the provider is above the ratings 1 &2 and is equal to the avaerage score of rating 3 and lower than the average score of ratings 4 & 5.

Quietness linear mean score - needs to improve on the noise management in the hospital areas.

Overall, in the experience measures the provider has to improve on the communications of Nurses/Doctos/Staff/Medicines/Quietness and Care transition.

3.Medical Observations:

The Medical group have only 4% weightage.

We see that the provider’s scores are very high compared to average scores of all the measures, except OP_13_score.

OP_13_score has very low score compared to the average score.

We will check how the scores for this column are.

OP_13 measure value is very low compared to the average score accorss the ratings.

Outpatients who got cardiac imaging stress tests before low risk outpatient surgery - provider needs to avoid these unnecessary tests and follow the protocol standards.

If the provider fix’s this issue the medical scores will drastically improve.

Code ENDS